This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RFC: SMS problem with emit_copy_of_insn_after copying REG_NOTEs
- From: Jan Hubicka <jh at suse dot cz>
- To: Andrew Pinski <pinskia at physics dot uc dot edu>
- Cc: Ian Lance Taylor <iant at google dot com>, Jan Hubicka <jh at suse dot cz>, Vladimir Yanovsky <volodyan at gmail dot com>, Jan Hubicka <hubicka at ucw dot cz>, gcc at gcc dot gnu dot org, Vladimir Yanovsky <yanov at il dot ibm dot com>, Ayal Zaks <zaks at il dot ibm dot com>, gcc-patches at gcc dot gnu dot org
- Date: Sun, 31 Dec 2006 00:59:52 +0100
- Subject: Re: RFC: SMS problem with emit_copy_of_insn_after copying REG_NOTEs
- References: <200612302207.kBUM7aG8023853@localhost.localdomain> <200612302214.kBUMEt3P025579@localhost.localdomain>
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