aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-04-14 20:42:14 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1996-04-14 20:42:14 -0400
commit7ca919b759bb26a3aadb085d6d514a3ecd672510 (patch)
treedb23d99bf5b485b1dc4d8d2f1257eb49dc208d2c
parentc2d12c8b86337921d2826edfe76237bcc04528f9 (diff)
downloadgcc-7ca919b759bb26a3aadb085d6d514a3ecd672510.zip
gcc-7ca919b759bb26a3aadb085d6d514a3ecd672510.tar.gz
gcc-7ca919b759bb26a3aadb085d6d514a3ecd672510.tar.bz2
(try_combine): When substituting in output of I2, ensure dest isn't
clobbered in I2. From-SVN: r11773
-rw-r--r--gcc/combine.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 9efa2ab..4d0ac4c 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -1307,7 +1307,8 @@ try_combine (i3, i2, i1)
The problem can also happen if the dest of I3 is a memory ref,
if another dest in I2 is an indirect memory ref. */
for (i = 0; i < XVECLEN (p2, 0); i++)
- if (GET_CODE (XVECEXP (p2, 0, i)) == SET
+ if ((GET_CODE (XVECEXP (p2, 0, i)) == SET
+ || GET_CODE (XVECEXP (p2, 0, i)) == CLOBBER)
&& reg_overlap_mentioned_p (SET_DEST (PATTERN (i3)),
SET_DEST (XVECEXP (p2, 0, i))))
break;