https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106677
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
See Also| |https://gcc.gnu.org/bugzill
| |a/show_bug.cgi?id=121712
--- Comment #11 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #10)
> 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.
Oh yes PR 121712.