This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/40783] inefficient code to accumulate function return values
- From: "ramana at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Jul 2009 15:05:21 -0000
- Subject: [Bug target/40783] inefficient code to accumulate function return values
- References: <bug-40783-17659@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #2 from ramana at gcc dot gnu dot org 2009-07-27 15:05 -------
This seems to be related to the other reassoc + register pressure bugs reported
in the database. I am not sure if this is a dup of either PR28481 or PR27855
but they appear to be related.
With -fno-tree-reassoc I get the same code for both loops.
time_math:
push {r4, r5, r6, lr}
bl dumm
mov r4, #0
mov r6, #99
add r5, r0, #0
.L2:
add r0, r5, #0
bl __aeabi_f2iz
add r5, r5, #1
add r4, r4, r0
add r0, r5, #0
bl __aeabi_f2iz
add r5, r5, #1
add r4, r4, r0
add r0, r5, #0
bl __aeabi_f2iz
add r5, r5, #1
add r4, r4, r0
add r0, r5, #0
bl __aeabi_f2iz
add r5, r5, #1
add r4, r4, r0
sub r6, r6, #1
bcs .L2
bl dumm
mov r6, #99
add r5, r0, #0
.L3:
add r0, r5, #0
bl MyConvert
add r5, r5, #1
add r4, r4, r0
add r0, r5, #0
bl MyConvert
add r5, r5, #1
add r4, r4, r0
add r0, r5, #0
bl MyConvert
add r5, r5, #1
add r4, r4, r0
add r0, r5, #0
bl MyConvert
add r5, r5, #1
add r4, r4, r0
sub r6, r6, #1
bcs .L3
mov r0, r4
@ sp needed for prologue
pop {r4, r5, r6, pc}
.size time_math, .-time_math
.ident "GCC: (GNU) 4.5.0 20090727 (experimental)"
--
ramana at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dberlin at gcc dot gnu dot
| |org
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2009-07-27 15:05:21
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40783