https://gcc.gnu.org/bugzilla/show_bug.cgi?id=9831
Wilco changed:
What|Removed |Added
Status|NEW |RESOLVED
CC|
--- Comment #7 from ramana at gcc dot gnu dot org 2009-06-16 10:01 ---
(In reply to comment #5)
See the attached pqp.c file.
With gcc 4.3.3, on such simplistic examples, peephole ldm and stm works:
sum:
ldr r2, .L3
ldmia r2, {r1, r3}@ phole ldm
--- Comment #4 from alexandre dot nunes at gmail dot com 2009-04-14 20:04
---
Created an attachment (id=17638)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17638action=view)
Testcase for gcc 4.4.0
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9831
--- Comment #5 from alexandre dot nunes at gmail dot com 2009-04-14 20:07
---
See the attached pqp.c file.
With gcc 4.3.3, on such simplistic examples, peephole ldm and stm works:
sum:
ldr r2, .L3
ldmia r2, {r1, r3}@ phole ldm
add r3, r0, r3
--- Comment #6 from alexandre dot nunes at gmail dot com 2009-04-14 20:11
---
(In reply to comment #5)
See the attached pqp.c file.
[cut]
With gcc 4.4.0 branch, built on 20090413, it fails:
This seems to be caused by the register order allocation. If I replace the
source code
--- Comment #3 from ramana dot r at gmail dot com 2009-03-13 10:54 ---
(In reply to comment #2)
See Dara's comment.
Occurs even today .
foo:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.