------- Comment #6 from irar at il dot ibm dot com  2007-12-11 13:24 -------
The first difference I found between with and without -fno-strict-aliasing
versions of the loop in reload.c:2352 is in 

with -fno-strict-aliasing (the "bad" one):
(insn 414 413 415 43 ../src/reload.c:2354 (set (reg/f:SI 593 [ D.5672 ])
        (mem/s/u/f/j:SI (reg:SI 361 [ ivtmp.3074 ]) [0 insn_operand_constraint
S4 A8])) -1 (nil))

without -fno-strict-aliasing (the "good" one):
(insn 414 413 415 43 ../src/reload.c:2354 (set (reg/f:SI 593 [ D.5672 ]) 
        (mem/s/u/f:SI (reg:SI 361 [ ivtmp.3165 ]) [28 insn_operand_constraint
S4 A8])) -1 (nil)) 

Since 'j' is related to alias set, I don't know if this difference gives any
information on the reasons for the failure. 

In the assemlby the only difference I see is in the order of the stores:
without -fno-strict-aliasing
        lwz 31,1032(1)
        stvx 0,7,9
        stvx 1,8,9
        stvx 0,31,9
with -fno-strict-aliasing
        stvx 0,7,9
        lwz 31,1032(1)
        stvx 0,31,9
        stvx 1,8,9

I wonder if those differences can explain the problem...

Ira


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34038

Reply via email to