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

Reply via email to