dce.c (delete_unmarked_insns): Just delete the RETVAL and LIBCALL notes if...

2007-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>

	* dce.c (delete_unmarked_insns): Just delete the RETVAL and
	LIBCALL notes if they are about to be moved to the same insn.

From-SVN: r129693
This commit is contained in:
Andreas Krebbel 2007-10-28 10:14:21 +00:00 committed by Andreas Krebbel
parent c7a7567d52
commit 137e9a70b7
2 changed files with 16 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2007-10-28 Andreas Krebbel <krebbel1@de.ibm.com>
* dce.c (delete_unmarked_insns): Just delete the RETVAL and
LIBCALL notes if they are about to be moved to the same insn.
2007-10-27 Richard Guenther <rguenther@suse.de>
PR tree-optimization/33870

View File

@ -346,10 +346,17 @@ delete_unmarked_insns (void)
rtx new_libcall_insn = next_real_insn (insn);
rtx retval_note = find_reg_note (XEXP (note, 0),
REG_RETVAL, NULL_RTX);
REG_NOTES (new_libcall_insn)
= gen_rtx_INSN_LIST (REG_LIBCALL, XEXP (note, 0),
REG_NOTES (new_libcall_insn));
XEXP (retval_note, 0) = new_libcall_insn;
/* If the RETVAL and LIBCALL notes would land on the same
insn just remove them. */
if (XEXP (note, 0) == new_libcall_insn)
remove_note (new_libcall_insn, retval_note);
else
{
REG_NOTES (new_libcall_insn)
= gen_rtx_INSN_LIST (REG_LIBCALL, XEXP (note, 0),
REG_NOTES (new_libcall_insn));
XEXP (retval_note, 0) = new_libcall_insn;
}
}
/* If the insn contains a REG_RETVAL note and is dead, but the