https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125923

--- Comment #1 from Drea Pinski <pinskia at gcc dot gnu.org> ---
```
  # VUSE <.MEM_23>
  b.3_20 = b;
  if (b.3_20 != 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 4> [local count: 14763950]:
  # .MEM_6 = VDEF <.MEM_23>
  b = 0;
  # VUSE <.MEM_6>
  c_lsm.9_28 = c;
  goto <bb 8>; [100.00%]

  <bb 7> [local count: 14763950]:
  # VUSE <.MEM_23>
  c_lsm.9_37 = c;

  <bb 8> [local count: 29527900]:
  # c_lsm.9_39 = PHI <c_lsm.9_37(7), c_lsm.9_28(4)>

  <bb 9> [local count: 536870912]:
  # c_lsm.9_17 = PHI <_5(9), c_lsm.9_39(8)>
  _5 = c_lsm.9_17 ^ 1;
  goto <bb 9>; [100.00%]
````

I guess there is a case where `gimple_vuse (load0) != gimple_vuse (load1)` can
show up even without a virtual phi after all. An infinite loop.

That is a simple fix.

Reply via email to