------- Comment #1 from steven at gcc dot gnu dot org 2007-02-21 15:53 ------- On i686, this happens too, due to fwprop1:
In insn 47, replacing (mem/s:SI (plus:SI (plus:SI (mult:SI (reg:SI 75 [ ivtmp.37 ]) (const_int 4 [0x4])) (reg/f:SI 91)) (const_int -4 [0xfffffffffffffffc])) [3 a S4 A8]) with (mem/s:SI (plus:SI (plus:SI (mult:SI (reg:SI 75 [ ivtmp.37 ]) (const_int 4 [0x4])) (reg/f:SI 20 frame)) (const_int -404 [0xfffffffffffffe6c])) [3 a S4 A8]) defering rescan insn with uid = 47. This results in different code between trunk and the df-branch: -- trunk ++ df-branch @@ -12,7 +12,6 @@ movl %eax, %ebx call bar movl 12(%ebp), %eax - leal -404(%ebp), %ecx movl s(,%eax,4), %edx movl 8(%ebp), %eax addl s(,%eax,4), %edx @@ -28,11 +27,12 @@ addl s(,%ebx,4), %edx .p2align 4,,7 .L2: - movl %edx, -4(%ecx,%eax,4) + movl %edx, -408(%ebp,%eax,4) addl $1, %eax cmpl $101, %eax jne .L2 - movl %ecx, (%esp) + leal -404(%ebp), %eax + movl %eax, (%esp) call foo addl $404, %esp popl %ebx -- steven at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bonzini at gnu dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2007-02-21 15:53:40 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30907