Commit 544823b6 by Richard Henderson Committed by Richard Henderson

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

From-SVN: r55590
parent f4b2b0d6
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
......
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment