Commit 4b2cb4a2 by Richard Stallman

(can_combine_p): Don't combine instructions across a volatile insn.

From-SVN: r5802
parent d97c4a16
...@@ -927,6 +927,14 @@ can_combine_p (insn, i3, pred, succ, pdest, psrc) ...@@ -927,6 +927,14 @@ can_combine_p (insn, i3, pred, succ, pdest, psrc)
&& p != succ && volatile_refs_p (PATTERN (p))) && p != succ && volatile_refs_p (PATTERN (p)))
return 0; 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, /* If INSN or I2 contains an autoincrement or autodecrement,
make sure that register is not used between there and I3, make sure that register is not used between there and I3,
and not already used in I3 either. and not already used in I3 either.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment