https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85605
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |ASSIGNED Last reconfirmed| |2023-06-04 Resolution|DUPLICATE |--- Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot gnu.org Ever confirmed|0 |1 Severity|normal |enhancement --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Actually this is not done after the patch for PR 89263. The problem (after the patch for PR 89263) is we have: b.0_1 = (unsigned int) b_2(D); if (a_3(D) < 0) goto <bb 4>; [41.00%] else goto <bb 3>; [59.00%] <bb 3> [local count: 633507681]: _5 = (unsigned int) a_3(D); _7 = b.0_1 > _5; <bb 4> [local count: 1073741824]: # iftmp.1_6 = PHI <_7(3), 1(2)> return iftmp.1_6; The assignment of _5 causes phiopt to skip these BB. I am going to fix this part later on.