> @Honza: PING^2 > > On 2/4/19 9:09 AM, Martin Liška wrote: > > @Honza: PING^1 > > > > Martin > > > > On 1/24/19 9:10 AM, Martin Liška wrote: > >> On 1/23/19 7:28 PM, Segher Boessenkool wrote: > >>> Hi Martin, > >>> > >>> On Wed, Jan 23, 2019 at 10:29:40AM +0100, Martin Liška wrote: > >>>> diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c > >>>> index 172bdf585d0..5dd316efb63 100644 > >>>> --- a/gcc/cfgrtl.c > >>>> +++ b/gcc/cfgrtl.c > >>>> @@ -4396,6 +4396,25 @@ cfg_layout_redirect_edge_and_branch (edge e, > >>>> basic_block dest) > >>>> "Removing crossing jump while redirecting edge form %i > >>>> to %i\n", > >>>> e->src->index, dest->index); > >>>> delete_insn (BB_END (src)); > >>>> + > >>>> + /* Unlink a BARRIER that can be still in BB_FOOTER. */ > >>>> + rtx_insn *insn = BB_FOOTER (src); > >>>> + while (insn != NULL_RTX && !BARRIER_P (insn)) > >>>> + insn = NEXT_INSN (insn); > >>>> + > >>>> + if (insn != NULL_RTX) > >>>> + { > >>>> + if (insn == BB_FOOTER (src)) > >>>> + BB_FOOTER (src) = NULL; > >>>> + else > >>>> + { > >>>> + if (PREV_INSN (insn)) > >>>> + SET_NEXT_INSN (PREV_INSN (insn)) = NEXT_INSN (insn); > >>>> + if (NEXT_INSN (insn)) > >>>> + SET_PREV_INSN (NEXT_INSN (insn)) = PREV_INSN (insn); > >>>> + } > >>>> + } > >>> > >>> > >>> combine.c has nicer code to do this, in update_cfg_for_uncondjump. Split > >>> it out into some common routine? Something in cfgrtl.c I guess. > >> > >> Thanks Segher for the advice. I'll do it as soon as Honza will make a > >> review > >> about the fundament of the patch.
Aha, yes, fundament of the patch is obvious - the barrier has to go :) There is same hunk of code in cfgrtl.c:1061, so please just merge it Note that I am not rtl reviewer. But as author of the code I would say that the updated patch can go in as obvious. Honza > >> > >> Martin > >> > >>> > >>> > >>> Segher > >>> > >> > > >