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

--- Comment #10 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I think the biggest issue is at forwprop3 we have:
```
  <bb 2> [local count: 96636761]:
  _19 = &foo_6(D)->m_array;
  __for_begin ={v} {CLOBBER(bob)};
  _43 = foo_6(D) + 24;
...

  <bb 3> [local count: 853673667]:
  # _51 = PHI <_17(4), _19(2)>
  # SR.81_45 = PHI <_17(4), _19(2)>
  _15 = MEM[(int * const * const &)_51];
  _16 = MEM[(int * const * const &)_51 + 8];
  if (_15 != _16)
    goto <bb 5>; [5.50%]
  else
    goto <bb 4>; [94.50%]

  <bb 4> [local count: 806721616]:
  _17 = _51 + 24;
  if (_17 != _43)
    goto <bb 3>; [94.50%]
  else
    goto <bb 5>; [5.50%]
```

But this is a loop that iterators just once.  But we don't remove this "loop"
until late.

Reply via email to