https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122734
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot
gnu.org
Status|NEW |ASSIGNED
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Ok, I have an slight improvement to my patch which should help here.
Basically we only handle unreachable if it is the first bbs.
That is if we have for the header:
goto header;
loop:
....
if (dd) __builtin_unreachable();
...
header:
if (a) __builtin_unreachable();
if (b) __builtin_unreachable();
if (c) loop;
We can duplicate the bb containing `if(a), if (b)` but we don't do the removal
of the `invariant` removal of the `if(dd)` part