diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2001-03-11 22:08:12 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-03-11 17:08:12 -0500 |
commit | c7ca5912e35ee202df6d4ab8036e8d1671221f5c (patch) | |
tree | c176001dbc56990d4a3e0438d5902143dfb05072 /gcc | |
parent | 3d9d2476769e35fcd17ef850a8faf3990c72155d (diff) | |
download | gcc-c7ca5912e35ee202df6d4ab8036e8d1671221f5c.zip gcc-c7ca5912e35ee202df6d4ab8036e8d1671221f5c.tar.gz gcc-c7ca5912e35ee202df6d4ab8036e8d1671221f5c.tar.bz2 |
combine.c (try_combine): Fix error in change to try original register.
* combine.c (try_combine): Fix error in change to try original
register.
(gen_rtx_combine): Do same as gen_rtx for now.
From-SVN: r40390
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/combine.c | 31 |
2 files changed, 15 insertions, 22 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 74c912d..8db93e9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Sun Mar 11 17:01:41 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * combine.c (try_combine): Fix error in change to try original + register. + (gen_rtx_combine): Do same as gen_rtx for now. + 2001-03-11 Zack Weinberg <zackw@stanford.edu> * configure.in: AC_SUBST xm_defines. diff --git a/gcc/combine.c b/gcc/combine.c index ca69870..f1df78a 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -2150,12 +2150,15 @@ try_combine (i3, i2, i1, new_direct_jump_p) /* If the split with the mode-changed register didn't work, try the original register. */ if (! m_split && ni2dest != i2dest) - m_split = split_insns (gen_rtx_PARALLEL - (VOIDmode, - gen_rtvec (2, newpat, - gen_rtx_CLOBBER (VOIDmode, - i2dest))), - i3); + { + ni2dest = i2dest; + m_split = split_insns (gen_rtx_PARALLEL + (VOIDmode, + gen_rtvec (2, newpat, + gen_rtx_CLOBBER (VOIDmode, + i2dest))), + i3); + } } if (m_split && GET_CODE (m_split) != SEQUENCE) @@ -9922,22 +9925,6 @@ gen_rtx_combine VPARAMS ((enum rtx_code code, enum machine_mode mode, ...)) va_end (p); - /* See if this is in undobuf. Be sure we don't use objects that came - from another insn; this could produce circular rtl structures. */ - - for (undo = undobuf.undos; undo != undobuf.previous_undos; undo = undo->next) - if (!undo->is_int - && GET_CODE (undo->old_contents.r) == code - && GET_MODE (undo->old_contents.r) == mode) - { - for (j = 0; j < n_args; j++) - if (XEXP (undo->old_contents.r, j) != args[j]) - break; - - if (j == n_args) - return undo->old_contents.r; - } - /* Otherwise make a new rtx. We know we have 1, 2, or 3 args. Use rtx_alloc instead of gen_rtx because it's faster on RISC. */ rt = rtx_alloc (code); |