https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110173
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So CCP2 now removes: Removing dead stmt:iftmp.4_9 = PHI <1(5), 0(6)> Which allows to remove all of this: <bb 5> [local count: 1073441178]: if (t_4(D) != 0) goto <bb 7>; [50.00%] else goto <bb 6>; [50.00%] <bb 6> [local count: 536720589]: <bb 7> [local count: 1073441178]: # iftmp.4_9 = PHI <1(5), 0(6)> And then jump threading happens (threadfull1) but leaves behind some extra jump threading it seems. ``` <bb 3> [local count: 751619281]: if (g.1_6 == 0B) goto <bb 5>; [99.96%] else goto <bb 4>; [0.04%] <bb 5> [local count: 751318634]: n = 0; goto <bb 7>; [100.00%] <bb 7> [local count: 751408828]: if (g.1_6 == 0B) goto <bb 10>; [30.00%] else goto <bb 8>; [70.00%] ``` No other block can enter `bb 5`. So not my issue.