+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
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. */
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