Fix incorrect note handling.

From-SVN: r43462
This commit is contained in:
Bernd Schmidt 2001-06-19 14:34:23 +00:00 committed by Bernd Schmidt
parent 10ab5c54a1
commit 4fb3cbd7e5
2 changed files with 15 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2001-06-19 Bernd Schmidt <bernds@redhat.com>
* regmove.c (optimize_reg_copy_3): Do nothing if previous insn
carries a REG_EQUIV note. If it carries REG_EQUAL, delete the
note.
Tue Jun 19 07:53:52 2001 Jeffrey A Law (law@cygnus.com)
* ssa.c (ssa_uses): Remove definition.

View File

@ -703,6 +703,9 @@ optimize_reg_copy_3 (insn, dest, src)
if (! (set = single_set (p))
|| GET_CODE (SET_SRC (set)) != MEM
/* If there's a REG_EQUIV note, this must be an insn that loads an
argument. Prefer keeping the note over doing this optimization. */
|| find_reg_note (p, REG_EQUIV, NULL_RTX)
|| SET_DEST (set) != src_reg)
return;
@ -747,6 +750,12 @@ optimize_reg_copy_3 (insn, dest, src)
PUT_MODE (src_reg, old_mode);
XEXP (src, 0) = src_reg;
}
else
{
rtx note = find_reg_note (p, REG_EQUAL, NULL_RTX);
if (note)
remove_note (p, note);
}
}