diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-04-14 20:42:14 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-04-14 20:42:14 -0400 |
commit | 7ca919b759bb26a3aadb085d6d514a3ecd672510 (patch) | |
tree | db23d99bf5b485b1dc4d8d2f1257eb49dc208d2c | |
parent | c2d12c8b86337921d2826edfe76237bcc04528f9 (diff) | |
download | gcc-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.c | 3 |
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; |