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