Commit d276f2bb by Catherine Moore Committed by Richard Henderson

combine.c (can_combine_p): Include successor in volatile test.

Mon Apr  6 07:17:52 1998  Catherine Moore  <clm@cygnus.com>
        * combine.c (can_combine_p):  Include successor in volatile test.

From-SVN: r19018
parent 64ad9df2
Mon Apr 6 07:17:52 1998 Catherine Moore <clm@cygnus.com>
* combine.c (can_combine_p): Include successor in volatile test.
Mon Apr 6 14:16:33 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
* sh.h (CASE_VECTOR_SHORTEN_MODE): Fix logic when to set
......
......@@ -1037,14 +1037,19 @@ can_combine_p (insn, i3, pred, succ, pdest, psrc)
return 0;
/* If INSN contains anything volatile, or is an `asm' (whether volatile
or not), reject, unless nothing volatile comes between it and I3,
with the exception of SUCC. */
or not), reject, unless nothing volatile comes between it and I3 */
if (GET_CODE (src) == ASM_OPERANDS || volatile_refs_p (src))
for (p = NEXT_INSN (insn); p != i3; p = NEXT_INSN (p))
if (GET_RTX_CLASS (GET_CODE (p)) == 'i'
&& p != succ && volatile_refs_p (PATTERN (p)))
return 0;
{
/* Make sure succ doesn't contain a volatile reference. */
if (succ != 0 && volatile_refs_p (PATTERN (succ)))
return 0;
for (p = NEXT_INSN (insn); p != i3; p = NEXT_INSN (p))
if (GET_RTX_CLASS (GET_CODE (p)) == 'i'
&& p != succ && volatile_refs_p (PATTERN (p)))
return 0;
}
/* If INSN is an asm, and DEST is a hard register, reject, since it has
to be an explicit register variable, and was chosen for a reason. */
......
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