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.