[Bug rtl-optimization/93264] [10 Regression] ICE in cfg_layout_redirect_edge_and_branch_force, at cfgrtl.c:4522
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Apr 2 11:44:12 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93264
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
So let's try to address this in cfgloop.c - we're likely facing the situation
of
header:
...
if (...) goto latch1;
latch2:
goto header;
latch1: // in cold section
goto header;
where latch disambiguation via merge_latch_egdes tries to build
header:
...
if (...) goto latch1;
latch2:
goto latch3;
latch1: // in cold section
goto latch3;
latch3: // somewhere
goto header;
but somehow we end up redirecting a jump that was formerly crossing
to non-crossing. Looking at the backtrace it must be entry edges
that are being redirected but the whole setup should be so that
the crossing state of a branch is never changed.
Unfortunately I can't reproduce on todays trunk, will try rewiding backwards
to the reporting time to have a closer look.
More information about the Gcc-bugs
mailing list