diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-04-15 00:42:14 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-04-15 00:42:14 +0000 |
commit | 48aa0bc81ab90615fbe726cbeeb1a63f0fbc81ef (patch) | |
tree | db23d99bf5b485b1dc4d8d2f1257eb49dc208d2c /gcc/combine.c | |
parent | abad63b517c57f97acc1294ca091313111007e6a (diff) | |
download | gcc-48aa0bc81ab90615fbe726cbeeb1a63f0fbc81ef.tar.gz |
(try_combine): When substituting in output of I2, ensure dest isn't
clobbered in I2.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11773 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/combine.c')
-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 9efa2ab3d91..4d0ac4cbc12 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; |