Scheduler moves load in front of store on powerpc-linux, 3.0 and mainline

Franz Sirl Franz.Sirl-kernel@lauterbach.com
Tue Apr 10 17:16:00 GMT 2001


Hi,

the attached testcase breaks KDE2 on powerpc-linux-gnu and I consider it 
probably the last gcc-3.0 showstopper bug I know of.

If compiled with -O2 -fPIC I get this assembler fragment in 
_ZN11NETRootInfo13setClientListEPmj/NETRootInfo::setClientList(unsigned 
long*, unsigned):

.L14:
        mr 4,29
        mr 3,28
        lwz 29,4(31)
        bl _Z7nwindupPmi@local
        lwz 11,4(31)
        mr 0,3
        lwz 9,.LC0-(.LCTOC1)(30)
        li 8,0
        lwz 10,88(11)
        li 6,33
        lwz 5,0(9)
        li 7,32
        lwz 3,0(11)
        lwz 4,12(11)
        lwz 9,56(11)               < load
        stw 0,56(29)               < store
        bl XChangeProperty@plt
        b .L12

If I add -fno-schedule-insns all is OK again:

.L14:
        mr 4,28
        mr 3,27
        lwz 29,4(31)
        bl _Z7nwindupPmi@local
        li 8,0
        lwz 11,4(31)
        li 6,33
        lwz 9,.LC0-(.LCTOC1)(30)
        li 7,32
        stw 3,56(29)              < store
        lwz 5,0(9)
        lwz 3,0(11)
        lwz 4,12(11)
        lwz 9,56(11)              < load
        lwz 10,88(11)
        bl XChangeProperty@plt
        b .L12

Franz.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test-netwm.ii.gz
Type: application/x-gzip
Size: 24322 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-bugs/attachments/20010410/46ce39d1/attachment.bin>


More information about the Gcc-bugs mailing list