http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55079



Richard Biener <rguenth at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

             Status|NEW                         |ASSIGNED

         AssignedTo|unassigned at gcc dot       |rguenth at gcc dot gnu.org

                   |gnu.org                     |



--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> 2012-12-10 
13:23:17 UTC ---

Created attachment 28911

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28911

prototype patch



The pattern we have is



  <bb 6>:

  _36 = i_33 + 1;

  _37 = a[i_33];

  a[_36] = _37;

  i_39 = i_33 + 4294967295;

  if (i_33 != 0)

    goto <bb 7>;

  else

    goto <bb 11>;



  <bb 7>:

  _42 = i_39 + 1;

  _43 = a[i_39];

  a[_42] = _43;



and eventually adding an assert in bb7 that i_39 != 1 would help.  But

the only thing we try to add extra asserts for is stuff in the definition

chain of comparison operands ... this OTOH is for stuff that uses

comparison operands and live on the edge.



Prototype patch attached, fixes comment#8 at least.

Reply via email to