On Thu, Dec 13, 2018 at 11:09:14AM -0700, Jeff Law wrote: > On 12/12/18 1:22 PM, Segher Boessenkool wrote: > > The new insn here (temporarily) illegally shares RTL. This fixes it. > > > > Tested with an ARC cross, and regstrapped on powerpc64-linux {-m32,-m64}. > > Is this okay for trunk? > > > > > > Segher > > > > > > 2018-12-12 Segher Boessenkool <seg...@kernel.crashing.org> > > > > PR rtl-optimization/88001 > > * function.c (match_asm_constraints_1): Don't invalidly share RTL. > > > > --- > > gcc/function.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/gcc/function.c b/gcc/function.c > > index 69523c1..60e96f3 100644 > > --- a/gcc/function.c > > +++ b/gcc/function.c > > @@ -6529,7 +6529,7 @@ match_asm_constraints_1 (rtx_insn *insn, rtx *p_sets, > > int noutputs) > > output_matched[match] = true; > > > > start_sequence (); > > - emit_move_insn (output, input); > > + emit_move_insn (output, copy_rtx (input)); > > insns = get_insns (); > > end_sequence (); > > emit_insn_before (insns, insn); > > > Presumably INPUT is already referenced by INSN, thus the potential > invalid sharing via the newly introduced move? > > OK.
I backported this to 8 and 7. Forgot to ask first, whoops :-/ Segher