------- Comment #13 from pinskia at gcc dot gnu dot org 2007-10-17 16:59
-------
Can someone explain this may_alias behavior:
so we have in the IR:
# VUSE <SFT.30_53>
D.892_19 = qav.data;
D.893_20 = (real8[0:] *) D.892_19;
in may_alias we get a constraint of:
D.892_19 = qav
D.893_20 = D.892_19
Isn't this wrong? D. 892_19 shouldn't just point to anywhere?
Inside the loop we get:
# VUSE <imax_33, SFT.11_34, SFT.12_35, SFT.13_36, SFT.14_37, SFT.15_38,
SFT.16_39, SFT.17_40, SFT.18_41, SFT.19_42, SFT.20_43, SFT.21_44, SFT.22_45,
SFT.23_46, SFT.24_47, SFT.25_48, SFT.26_49, SFT.27_50, SFT.28_51, SFT.29_52,
SFT.30_53, SMT.35_54>
D.903_30 = (*D.893_20)[D.902_29];
Which obviously shows that the vops are wrong.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dberlin at gcc dot gnu dot
| |org
Keywords| |missed-optimization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32921