[parisc-linux] new gcc-default for hppa
John David Anglin
dave@hiauly1.hia.nrc.ca
Tue, 28 Jan 2003 09:47:00 -0500 (EST)
> gcc translates this to something like this:
> /* %r4 is &pty_driver */
> ldo 28(%r4),%r23
> ldi 28,%r21
> ldw,ma 4(%r22),%r20
> ldw,ma 4(%r22),%r19
> stw,ma %r20,4(%r23)
> addib,>= -8,%r21,.-12
> stw,ma %r19,4(%r23)
> /* ... */
> stw %r0,28(%r4)
> stw %r0,32(%r4)
> stw %r10,36(%r4)
> stw %r0,40(%r4)
>
> When optimizations are turned on, gcc reschedules some of those final
> stw insns above the structure copy loop. When the structure copy
> happens, the values get overwritten. ick.
>
> this was kind of interesting to debug :) but i have no idea how to fix
> it. Dave? :)
I don't either at the moment. It's memory aliasing problem. It's
most likely not a problem in the backend.
Can you strip the above down to a simple testcase and file a GCC PR?
I will bump it to high-priority as it is a regression.
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)