This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/40783] inefficient code to accumulate function return values



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]