+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.
+
2001-05-22 Bernd Schmidt <bernds@redhat.com>
* sparc.md (movsf, movdf): Allow constant to integer reg moves.
}
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;
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);
+ }
}
\f