From c767f54b88953760289ecb529621e91c4247e3db Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sun, 5 Jul 1992 14:02:06 -0400 Subject: [PATCH] *** empty log message *** From-SVN: r1442 --- gcc/combine.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gcc/combine.c b/gcc/combine.c index 5e6a18300c7..5163f5c83f6 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 -- 2.30.2