re PR rtl-optimization/30773 (Spec cpu2k6/h264ref and sphinx3 miscompare regression)

PR rtl-optimization/30773
	* local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
	if we fail to attach a REG_EQUIV note.

From-SVN: r122106
This commit is contained in:
Steven Bosscher 2007-02-18 22:33:23 +00:00
parent 03f79051ae
commit 8800a9b349
2 changed files with 10 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2007-02-18 Steven Bosscher <steven@gcc.gnu.org>
PR rtl-optimization/30773
* local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
if we fail to attach a REG_EQUIV note.
2007-02-18 David Edelsohn <edelsohn@gnu.org>
Roger Sayle <roger@eyesopen.com>

View File

@ -1062,10 +1062,11 @@ update_equiv_regs (void)
{
rtx init_insn = XEXP (reg_equiv[regno].init_insns, 0);
if (validate_equiv_mem (init_insn, src, dest)
&& ! memref_used_between_p (dest, init_insn, insn))
&& ! memref_used_between_p (dest, init_insn, insn)
/* Attaching a REG_EQUIV note will fail if INIT_INSN has
multiple sets. */
&& set_unique_reg_note (init_insn, REG_EQUIV, copy_rtx (dest)))
{
set_unique_reg_note (init_insn, REG_EQUIV, copy_rtx (dest));
/* This insn makes the equivalence, not the one initializing
the register. */
reg_equiv_init[regno]