http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35272
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2012-12-05
Ever Confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> 2012-12-05
09:45:24 UTC ---
On trunk we would distribute a variant with a[i] = c[i] ... if the partitions
would not be fused because of having similar memory accesses. With the
reduction in place we only form a single useful partition because of the
dependences.
Thus, confirmed (we can build the RDG now), for
_5 = a[i_19];
_6 = c[i_19];
_7 = d[i_19];
_8 = _6 * _7;
_9 = _5 + _8;
a[i_19] = _9;
_11 = _7 + _9;
_12 = i_19 + -1;
_13 = b[_12];
_14 = _11 + _13;
b[i_19] = _14;
we'd have to use a[i_19] in the loop storing to b but instead we
only try re-compute it via retaining
_5 = a[i_19];
_6 = c[i_19];
_7 = d[i_19];
_8 = _6 * _7;
_9 = _5 + _8;
which of course does not work (a[i_19] is not available).