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



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



           What    |Removed                     |Added

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

           Keywords|                            |missed-optimization

             Status|UNCONFIRMED                 |NEW

   Last reconfirmed|                            |2013-03-06

             Blocks|                            |53947

     Ever Confirmed|0                           |1



--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> 2013-03-06 
09:13:29 UTC ---

if-conversion is confused by the three-argument PHI node:



  <bb 6>:

  # rMin_3 = PHI <rMin_11(5), rMin_12(4), 1.5e+2(3)>



that occurs because of the forwarder block (which isn't one in the

case the addition appears).  DOM produces this by threading



  if (rMin_12 > 0.0)

    goto <bb 4>;

  else

    goto <bb 5>;



  <bb 4>:



  <bb 5>:

  # rMin_2 = PHI <rMin_11(4), 1.5e+2(3)>

  if (rMin_2 > 0.0)

    goto <bb 7>;

  else

    goto <bb 6>;

...

  <bb 7>:

  # rMin_3 = PHI <rMin_2(5), rMin_12(6)>



for rMin_2 == 1.5e+2.  That's a good optimization.

Reply via email to