* loop.c (loop_givs_rescan): Delete the REG_EQUAL note, not the insn.
From-SVN: r55590
This commit is contained in:
parent
f4b2b0d665
commit
544823b621
|
@ -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
|
||||
|
|
14
gcc/loop.c
14
gcc/loop.c
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue