[Bug tree-optimization/39839] [4.3/4.4/4.5 regression] loop invariant motion causes stack spill
--- Comment #8 from rguenth at gcc dot gnu dot org 2010-01-02 11:18 --- You may also want to try -fsched-pressure -fschedule-insns which is new in GCC 4.5 and might decrease register pressure (no idea if it ever moves things into loops though - the haifa scheduler might not consider it a region to work on). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39839
[Bug tree-optimization/39839] [4.3/4.4/4.5 regression] loop invariant motion causes stack spill
--- Comment #7 from steven at gcc dot gnu dot org 2010-01-02 00:49 --- With "GCC: (GNU) 4.5.0 20090808 (experimental) [trunk revision 150579]" I get: .arch armv5te .fpu softvfp .eabi_attribute 20, 1 .eabi_attribute 21, 1 .eabi_attribute 23, 3 .eabi_attribute 24, 1 .eabi_attribute 25, 1 .eabi_attribute 26, 1 .eabi_attribute 30, 4 .eabi_attribute 18, 4 .code 16 .file "t.c" .text .align 1 .global test .code 16 .thumb_func .type test, %function test: push{r3, r4, r5, r6, r7, lr} ldr r3, .L7 ldr r5, .L7+4 .LPIC0: add r3, pc add r5, r3, r5 mov r7, r5 mov r4, r0 ldr r6, [r0] add r7, r7, #8 b .L2 .L4: ldr r1, [r4, #4] ldrbr3, [r1] cmp r3, #0 bne .L5 mov r3, r5 b .L3 .L5: add r3, r5, #4 .L3: add r1, r1, r6 mov r0, r7 mov r2, r6 bl func ldr r3, [r4] sub r3, r3, #1 str r3, [r4] .L2: ldr r3, [r4] cmp r3, #0 bge .L4 @ sp needed for prologue pop {r3, r4, r5, r6, r7, pc} .L8: .align 2 .L7: .word _GLOBAL_OFFSET_TABLE_-(.LPIC0+4) .word .LANCHOR0(GOTOFF) .size test, .-test .section.rodata .set.LANCHOR0,. + 0 .LC0: .ascii "xyz\000" .LC1: .ascii "pqr\000" .LC2: .ascii "abcde\000" .ident "GCC: (GNU) 4.5.0 20090808 (experimental) [trunk revision 150579]" I have no idea whether that is better or worse. Alexander, could you give this a look please? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39839
[Bug tree-optimization/39839] [4.3/4.4/4.5 regression] loop invariant motion causes stack spill
--- Comment #6 from rguenth at gcc dot gnu dot org 2009-08-04 12:30 --- GCC 4.3.4 is being released, adjusting target milestone. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|4.3.4 |4.3.5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39839
[Bug tree-optimization/39839] [4.3/4.4/4.5 regression] loop invariant motion causes stack spill
--- Comment #5 from steven at gcc dot gnu dot org 2009-06-22 16:29 --- How is this different from bug 39837? -- steven at gcc dot gnu dot org changed: What|Removed |Added OtherBugsDependingO||16996 nThis|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39839
[Bug tree-optimization/39839] [4.3/4.4/4.5 regression] loop invariant motion causes stack spill
--- Comment #4 from bonzini at gnu dot org 2009-06-15 16:26 --- Someone can please check if this is still a problem in 4.5? -- bonzini at gnu dot org changed: What|Removed |Added CC||bonzini at gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39839
[Bug tree-optimization/39839] [4.3/4.4/4.5 regression] loop invariant motion causes stack spill
-- ramana at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-05-20 14:17:11 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39839
[Bug tree-optimization/39839] [4.3/4.4/4.5 regression] loop invariant motion causes stack spill
--- Comment #3 from vmakarov at redhat dot com 2009-04-22 20:37 --- Actually YARA did not have a rematerialization as IRA. Reload has a primitive rematerialization of constant values. Although about 5 years I did implemented a register pressure relief through rematerialization which is close to Simpson's thesis. It was reported on the 2nd GCC summit. I had a mixed feeling about this: wrong register pressure calculation (because we have not cover classes at that time), small improvement but a few additional percents to compilation time. Probably it is time to return to this and make it optional or default which will eat a chunk of your recent 5% compilation time improvement :) I'll try to include this in my plans. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39839
[Bug tree-optimization/39839] [4.3/4.4/4.5 regression] loop invariant motion causes stack spill
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-04-22 13:39 --- Vlad, with YARA you had implemented rematerialization, right? How difficult is it to do the same with IRA for cases like this? -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||vmakarov at redhat dot com Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39839
[Bug tree-optimization/39839] [4.3/4.4/4.5 regression] loop invariant motion causes stack spill
--- Comment #1 from rguenth at gcc dot gnu dot org 2009-04-22 09:39 --- Implement re-materialization in reload. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Component|regression |tree-optimization Keywords||missed-optimization Target Milestone|--- |4.3.4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39839