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.

Reply via email to