diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-10-12 16:55:45 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-10-12 16:55:45 -0400 |
commit | 472fbdd1ca531088684ce533b08f65bea09b84ee (patch) | |
tree | 31ce24a98d11341c60d1a4c768cbf989f3d1de56 /gcc/combine.c | |
parent | 460fe04f6c5bbaab3b0ded94d19fd296b11e3d20 (diff) | |
download | gcc-472fbdd1ca531088684ce533b08f65bea09b84ee.zip gcc-472fbdd1ca531088684ce533b08f65bea09b84ee.tar.gz gcc-472fbdd1ca531088684ce533b08f65bea09b84ee.tar.bz2 |
(try_combine): Save DEST of NI2PAT before calling recog_for_combine,
which might make it a PARALLEL.
From-SVN: r2411
Diffstat (limited to 'gcc/combine.c')
-rw-r--r-- | gcc/combine.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index 9dd969f..5476599 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -1676,11 +1676,13 @@ try_combine (i3, i2, i1) && ! find_reg_note (i3, REG_UNUSED, SET_DEST (XVECEXP (newpat, 0, 0)))) { + rtx ni2dest; + newi2pat = XVECEXP (newpat, 0, 0); + ni2dest = SET_DEST (XVECEXP (newpat, 0, 0)); newpat = XVECEXP (newpat, 0, 1); SUBST (SET_SRC (newpat), - gen_lowpart_for_combine (GET_MODE (SET_SRC (newpat)), - SET_DEST (newi2pat))); + gen_lowpart_for_combine (GET_MODE (SET_SRC (newpat)), ni2dest)); 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); @@ -1717,7 +1719,7 @@ try_combine (i3, i2, i1) insn = NEXT_INSN (insn)) { if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' - && reg_referenced_p (SET_DEST (newi2pat), PATTERN (insn))) + && reg_referenced_p (ni2dest, PATTERN (insn))) { for (link = LOG_LINKS (insn); link; link = XEXP (link, 1)) |