(can_combine_p): Don't combine instructions across a volatile insn.
From-SVN: r5802
This commit is contained in:
parent
d97c4a1640
commit
4b2cb4a295
@ -927,6 +927,14 @@ can_combine_p (insn, i3, pred, succ, pdest, psrc)
|
||||
&& p != succ && volatile_refs_p (PATTERN (p)))
|
||||
return 0;
|
||||
|
||||
/* If there are any volatile insns between INSN and I3, reject, because
|
||||
they might affect machine state. */
|
||||
|
||||
for (p = NEXT_INSN (insn); p != i3; p = NEXT_INSN (p))
|
||||
if (GET_RTX_CLASS (GET_CODE (p)) == 'i'
|
||||
&& p != succ && volatile_insn_p (PATTERN (p)))
|
||||
return 0;
|
||||
|
||||
/* If INSN or I2 contains an autoincrement or autodecrement,
|
||||
make sure that register is not used between there and I3,
|
||||
and not already used in I3 either.
|
||||
|
Loading…
Reference in New Issue
Block a user