http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46232
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P1
CC| |jamborm at gcc dot gnu.org
--- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-15
12:18:04 UTC ---
On x86_64-linux early SRA manages to look through the single copy
t = r_2(D)->v;
D.2695_4 = t.e[1];
when scalarizing t and thus loads indirectly from r_2. On sparc we
instead see
D.1987 = r_2(D)->v;
D.1986 = D.1987;
D.2695_4 = D.1986.e[1];
and SRA doesn't manage to look through both. One might be able to
create an equivalent testcase on x86_64 that doesn't rely on inlining
or return-value optimization.