combine.c (try_combine): Fix error in change to try original register.
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Sun, 11 Mar 2001 22:08:12 +0000 (22:08 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Sun, 11 Mar 2001 22:08:12 +0000 (17:08 -0500)
* 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

gcc/ChangeLog
gcc/combine.c

index 74c912d645312eed546588f6c48a97faf47943f9..8db93e974379cf1785a36de1ab1eb3aef0ac4e79 100644 (file)
@@ -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.
index ca698707e77edb723698c7e9c37ea0334d2e0d32..f1df78a8c7aac1dfcbf1c6ce131efd310ccca33a 100644 (file)
@@ -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);