This is the mail archive of the
gcc@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: Vladimir Yanovsky <volodyan at gmail dot com>
- Cc: Jan Hubicka <jh at suse dot cz>, 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: Mon, 1 Jan 2007 22:56:05 +0100
- Subject: Re: RFC: SMS problem with emit_copy_of_insn_after copying REG_NOTEs
- References: <48ee23ef0612181248l255833bcjd529c1651aef7a28@mail.gmail.com> <20061218205823.GA2339@atrey.karlin.mff.cuni.cz> <48ee23ef0612190443q59f0937cp4eceeb1c579bb77a@mail.gmail.com> <20061230120026.GA28965@kam.mff.cuni.cz> <48ee23ef0612310415r5f286d9fk68ac5c21f2d5c4d6@mail.gmail.com> <20070101161908.GA14548@kam.mff.cuni.cz> <48ee23ef0701010959k17dd526ct7b7b949750e1bcd2@mail.gmail.com>
Hi,
I've commited the following patch that fixes the obvious problem of
calling emit_insn_1 for INSN_LIST argument. It seems to solve the
problems I can reproduce and it bootstraps x86_64-linux/i686-linux and
Darwin (thanks to andreast). The patch was preaproved by Ian. This is
meant as fast fix to avoid bootstrap. Andrew's optimization still makes
sense as an microoptimization and the nested libcall issue probably
ought to be resolved, but can be dealt with incrementally.
My apologizes for the problems.
Honza
Index: ChangeLog
===================================================================
--- ChangeLog (revision 120315)
+++ ChangeLog (working copy)
@@ -1,3 +1,8 @@
+2007-01-01 Jan Hubicka <jh@suse.cz>
+
+ * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
+ INSN_LIST.
+
2007-01-01 Mike Stump <mrs@apple.com>
* configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
Index: emit-rtl.c
===================================================================
--- emit-rtl.c (revision 120313)
+++ emit-rtl.c (working copy)
@@ -5302,7 +5302,7 @@ emit_copy_of_insn_after (rtx insn, rtx a
else
REG_NOTES (new)
= gen_rtx_INSN_LIST (REG_NOTE_KIND (link),
- copy_insn_1 (XEXP (link, 0)), REG_NOTES (new));
+ XEXP (link, 0), REG_NOTES (new));
}
/* Fix the libcall sequences. */