------- Comment #32 from rguenth at gcc dot gnu dot org 2007-09-12 14:44 ------- load-store motion at the tree level should really catch this. For this it needs to be extended to disambiguate aliases by looking at the actual memory references:
<bb 4>: # r_8 = PHI <r_29(5), r_23(D)(3)> # n_11 = PHI <n_3(5), n_14(3)> # VUSE <r_8> D.1137_4 = r[0]; # VUSE <r_8> D.1138_5 = r[5]; D.1139_6 = D.1138_5 + D.1137_4; # r_24 = VDEF <r_8> r[0] = D.1139_6; # VUSE <r_24> D.1140_7 = r[1]; D.1141_9 = D.1139_6 + D.1140_7; ... # r_29 = VDEF <r_28> r[5] = D.1148_21; n_3 = n_11 + -1; if (n_3 != 0) goto <bb 5>; else goto <bb 6>; Zdenek, I think you had a patch to make lim more precise in this regard? -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rakdver at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19580