[taken from gcc-2.95.3-7-suse]

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.


git-svn-id: file:///srv/svn/repos/haiku/trunk/buildtools@9584 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Oliver Tappe 2004-10-28 18:20:00 +00:00
parent 288e868d9b
commit e31a22361a

View File

@ -693,6 +693,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;
@ -737,6 +740,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);
}
}