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



Andrew Pinski <pinskia at gcc dot gnu.org> changed:



           What    |Removed                     |Added

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

           Keywords|                            |diagnostic,

                   |                            |missed-optimization

             Status|UNCONFIRMED                 |NEW

   Last reconfirmed|                            |2013-02-10

          Component|other                       |tree-optimization

     Ever Confirmed|0                           |1



--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> 2013-02-10 
07:34:54 UTC ---

The problem is a missing VRP.  Basically ivopts changes:

  if (j_10 != 9)



Which works into:



  j_10 = ivtmp.12_56;

  if (ivtmp.12_56 != 9)

    goto <bb 7>;

  else

    goto <bb 6>;





Which does not work as VRP cannot figure out j_10 will never be 9.

I have some patches to VRP which improves this but I don't remember if it fixes

this case where there is an assignment which is used later on.

Reply via email to