* loop.c (loop_givs_rescan): Delete the REG_EQUAL note, not the insn.

From-SVN: r55590
This commit is contained in:
Richard Henderson 2002-07-19 09:31:40 -07:00 committed by Richard Henderson
parent f4b2b0d665
commit 544823b621
2 changed files with 12 additions and 6 deletions

View File

@ -1,3 +1,7 @@
2002-07-19 Richard Henderson <rth@redhat.com>
* loop.c (loop_givs_rescan): Delete the REG_EQUAL note, not the insn.
2002-07-19 Alan Modra <amodra@bigpond.net.au>
* prefix.c (update_path): Don't zap single `.' path components

View File

@ -4875,6 +4875,7 @@ loop_givs_rescan (loop, bl, reg_map)
else
{
rtx original_insn = v->insn;
rtx note;
/* Not replaceable; emit an insn to set the original giv reg from
the reduced giv, same as above. */
@ -4882,12 +4883,13 @@ loop_givs_rescan (loop, bl, reg_map)
gen_move_insn (v->dest_reg,
v->new_reg));
/* The original insn may have a REG_EQUAL note. This note is
now incorrect and may result in invalid substitutions later.
We could just delete the note, but we know that the entire
insn is dead, so we might as well save ourselves the bother
and remove the whole thing. */
delete_insn (original_insn);
/* The original insn may have a REG_EQUAL note. This note is
now incorrect and may result in invalid substitutions later.
The original insn is dead, but may be part of a libcall
sequence, which doesn't seem worth the bother of handling. */
note = find_reg_note (original_insn, REG_EQUAL, NULL_RTX);
if (note)
remove_note (original_insn, note);
}
/* When a loop is reversed, givs which depend on the reversed