------- 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