On 11/2/18 5:54 PM, Segher Boessenkool wrote: > On Fri, Nov 02, 2018 at 06:03:20PM -0500, Segher Boessenkool wrote: >>> The original rtx is generated by expand_builtin_setjmp_receiver to adjust >>> the frame pointer. >>> >>> And later in LRA, it will try to eliminate frame_pointer with hard frame >>> pointer which is >>> defined the ELIMINABLE_REGS. >>> >>> Your change split the insn into two. >>> This makes it doesn't match the "from" and "to" regs defined in >>> ELIMINABLE_REGS. >>> The if statement to generate the adjustment insn is been skipt. >>> And the original instruction is just been deleted! >> I don't follow why, or what should have prevented it from being deleted. >> >>> Probably, we don't want to split the move rtx if they are related to >>> entries defined in ELIMINABLE_REGS? >> One thing I can easily do is not making an intermediate pseudo when copying >> *to* a fixed reg, which sfp is. Let me try if that helps the testcase I'm >> looking at (setjmp-4.c). > This indeed helps, see patch below. Could you try that on the whole > testsuite? > > Thanks, > > > Segher > > > p.s. It still is a problem in the arm backend, but this won't hurt combine, > so why not. > > > From 814ca23ce05384d017b3c2bff41ab61cf5446e46 Mon Sep 17 00:00:00 2001 > Message-Id: > <814ca23ce05384d017b3c2bff41ab61cf5446e46.1541202704.git.seg...@kernel.crashing.org> > From: Segher Boessenkool <seg...@kernel.crashing.org> > Date: Fri, 2 Nov 2018 23:33:32 +0000 > Subject: [PATCH] combine: Don't break up copy from hard to fixed reg > > --- > gcc/combine.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/gcc/combine.c b/gcc/combine.c > index dfb0b44..15e941a 100644 > --- a/gcc/combine.c > +++ b/gcc/combine.c > @@ -14998,6 +14998,8 @@ make_more_copies (void) > continue; > if (TEST_HARD_REG_BIT (fixed_reg_set, REGNO (src))) > continue; > + if (REG_P (dest) && TEST_HARD_REG_BIT (fixed_reg_set, REGNO (dest))) > + continue; > > rtx new_reg = gen_reg_rtx (GET_MODE (dest)); > rtx_insn *new_insn = gen_move_insn (new_reg, src); > -- 1.8.3.1 It certainly helps the armeb test results.
Jeff