reorg.c (fill_slots_from_thread): When considering changing the insn following a reg-to-reg copy insn to use the...
* reorg.c (fill_slots_from_thread): When considering changing the insn following a reg-to-reg copy insn to use the source reg of the copy, bail out if there's overlap between the registers. From-SVN: r65381
This commit is contained in:
parent
8a5275eb09
commit
5a82c0b12b
2 changed files with 10 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2003-04-08 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
* reorg.c (fill_slots_from_thread): When considering changing the
|
||||
insn following a reg-to-reg copy insn to use the source reg of the
|
||||
copy, bail out if there's overlap between the registers.
|
||||
|
||||
2003-04-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
|
||||
|
||||
* function.c (postponed_insns): New.
|
||||
|
|
|
@ -2813,11 +2813,13 @@ fill_slots_from_thread (insn, condition, thread, opposite_thread, likely,
|
|||
that would make the replacement into the insn invalid. We also can't
|
||||
do this if it modifies our source, because it might be an earlyclobber
|
||||
operand. This latter test also prevents updating the contents of
|
||||
a PRE_INC. */
|
||||
a PRE_INC. We also can't do this if there's overlap of source and
|
||||
destination. Overlap may happen for larger-than-register-size modes. */
|
||||
|
||||
if (GET_CODE (trial) == INSN && GET_CODE (pat) == SET
|
||||
&& GET_CODE (SET_SRC (pat)) == REG
|
||||
&& GET_CODE (SET_DEST (pat)) == REG)
|
||||
&& GET_CODE (SET_DEST (pat)) == REG
|
||||
&& !reg_overlap_mentioned_p (SET_DEST (pat), SET_SRC (pat)))
|
||||
{
|
||||
rtx next = next_nonnote_insn (trial);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue