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