[Bug tree-optimization/35272] Loop distribution fails to distribute

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Dec 5 09:45:00 GMT 2012


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



More information about the Gcc-bugs mailing list