[Sorry for missing the previous messages] > Thanks. Just been retesting, and I think I must have forgotten > to include Ada last time. It turns out that the patch causes a dg-scan > regression in gnat.dg/vect17.adb, because we now think that if the > array RECORD_TYPEs *do* alias in: > > procedure Add (X, Y : aliased Sarray; R : aliased out Sarray) is > begin > for I in Sarray'Range loop > R(I) := X(I) + Y(I); > end loop; > end; > > then the dependence distance must be zero. Eric, does that hold true > for Ada? I.e. if X and R (or Y and R) alias, must it be the case that > X(I) can only alias R(I) and not for example R(I-1) or R(I+1)?
Yes, I'd think so (even without the artificial RECORD_TYPE around the arrays). > 2017-06-07 Richard Sandiford <richard.sandif...@linaro.org> > > gcc/testsuite/ > * gnat.dg/vect17.ads (Sarray): Increase range to 1 .. 5. > * gnat.dg/vect17.adb (Add): Create a dependence distance of 1 > when X = R or Y = R. I think that you need to modify vect15 and vect16 the same way. -- Eric Botcazou