diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-07-05 14:02:06 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-07-05 14:02:06 -0400 |
commit | c767f54b88953760289ecb529621e91c4247e3db (patch) | |
tree | 8671111e5fdc6afc21f85a26e126f7725e7eaab6 /gcc | |
parent | 41c801688207770e5d73f7c57d332cb555403916 (diff) | |
download | gcc-c767f54b88953760289ecb529621e91c4247e3db.zip gcc-c767f54b88953760289ecb529621e91c4247e3db.tar.gz gcc-c767f54b88953760289ecb529621e91c4247e3db.tar.bz2 |
*** empty log message ***
From-SVN: r1442
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/combine.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index 5e6a183..5163f5c 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -1520,6 +1520,19 @@ try_combine (i3, i2, i1) i2_code_number = recog_for_combine (&newi2pat, i2, &new_i2_notes); if (i2_code_number >= 0) insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes); + + /* It is possible that both insns now set the destination of I3. + If so, we must show an extra use of it and update + reg_significant. */ + + if (insn_code_number >= 0 && GET_CODE (SET_DEST (newpat)) == REG + && GET_CODE (SET_DEST (newi2pat)) == REG + && REGNO (SET_DEST (newpat)) == REGNO (SET_DEST (newi2pat))) + { + reg_n_sets[REGNO (SET_DEST (newpat))]++; + set_significant (SET_DEST (newi2pat), newi2pat); + set_significant (SET_DEST (newpat), newpat); + } } /* If we can split it and use I2DEST, go ahead and see if that |