http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45491
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
CC| |jamborm at gcc dot gnu.org
Resolution| |FIXED
--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-11
11:40:47 UTC ---
I can't reproduce this with a cross, but what I can see is that SRA on
hppa does
<bb 2>:
SR.5_29 = MEM[(struct T *)&x];
SR.6_30 = MEM[(struct T *)&x + 4B];
SR.7_31 = MEM[(struct T *)&x + 8B];
MEM[(struct T *)&x.2] = SR.5_29;
MEM[(struct T *)&x.2 + 4B] = SR.6_30;
MEM[(struct T *)&x.2 + 8B] = SR.7_31;
u_11 = fn10 ();
...
D.2056_15 = fn3 (x.2);
while on x86_64 we have
<bb 2>:
xD.2753 = xD.1615;
uD.2755_10 = fn10 ();
...
D.2757_14 = fn3 (xD.2753);
so SRA fails to see that the destination of the x-x copy is used as
aggregate only.
There are a lot of testsuite fails in recent hppa2.0w-hp-hpux11.11 but this
one doesn't prevail.
Thus, fixed.
Martin, CCed you just in case you want to investigate the inefficient-SRA
issue ;)