This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/39838] [4.3/4.4/4.5 regression] unoptimal code for two simple loops
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 2 Jan 2010 00:52:44 -0000
- Subject: [Bug middle-end/39838] [4.3/4.4/4.5 regression] unoptimal code for two simple loops
- References: <bug-39838-17592@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from steven at gcc dot gnu dot org 2010-01-02 00:52 -------
>From "GCC: (GNU) 4.5.0 20090808 (experimental) [trunk revision 150579]":
1 @
1 bl
1 pop
1 push
1 sub
2 cmp
2 str
4 add
4 mov
7 ldr
test:
push {r4, r5, r6, r7, lr}
sub sp, sp, #12
mov r4, r0
str r2, [sp, #4]
mov r6, #0
mov r7, #0
b .L2
.L3:
ldr r3, [r4, #4]
ldr r2, [sp]
ldr r0, [r3, r6]
ldr r1, [r3, r2]
bl func
add r5, r5, #1
.L5:
ldr r3, [sp, #4]
cmp r5, r3
blt .L3
ldr r6, [sp]
add r7, r7, #1
.L2:
ldr r3, [r4]
cmp r7, r3
bge .L1
add r2, r6, #4
str r2, [sp]
mov r5, #0
b .L5
.L1:
add sp, sp, #12
@ sp needed for prologue
pop {r4, r5, r6, r7, pc}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39838