Hi,
I do apologize for the breakage, apparently I tested the only target
that didn't break. Andrew's patch seems to be OK for me (as well as the
patch just omitting copy_insn_1 call in the second branch that should
make situation no worse than before my patch and still save the
quadratic memory consumption).
> > 
> > ChangeLog:
> > 
> >     * emit-rtl.c (emit_copy_of_insn_after): Copy REG_LIBCALL note specially.
> >     Copy REG_RETVAL not specially and fix it and the referencing 
> > REG_LIBCALL note.
> >     Use copy_rtx instead of copy_insn_1 for EXPR_LIST note.
> >     Abort if we get a INSN_LIST for the note.
> > 
> > Thanks,
> > Andrew Pinski
> 
> Also I should mention, this also fixes a possible bug with libcalls that
> are embedded in one another.  Before we were just assuming if we have a 
> REG_RETVAL,
> then the previous REG_LIBCALL would be the start of the libcall but that 
> would be
> incorrect with embedded libcalls.

We should not have nested libcalls at all.  One level of libcalls is
painful enough and we take care to not do this.

Honza


> 
> Thanks,
> Andrew Pinski

Reply via email to