OSDN Git Service

* loop.c (emit_iv_add_mult): Revert last change.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Apr 2000 02:56:58 +0000 (02:56 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Apr 2000 02:56:58 +0000 (02:56 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33302 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/loop.c

index 8488dd9..99659e9 100644 (file)
@@ -1,3 +1,7 @@
+2000-04-20  Richard Henderson  <rth@cygnus.com>
+
+       * loop.c (emit_iv_add_mult): Revert last change.
+
 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
 
        * cpplib.h (enum cpp_ttype): Add token types for all
index 7dd557d..1ff6a8c 100644 (file)
@@ -7640,24 +7640,11 @@ emit_iv_add_mult (b, m, a, reg, insert_before)
 {
   rtx seq;
   rtx result;
-  rtx last;
-  rtx set;
-  rtx exp;
-  enum machine_mode mode = GET_MODE (reg);
 
   /* Prevent unexpected sharing of these rtx.  */
   a = copy_rtx (a);
   b = copy_rtx (b);
 
-  /* We may be faced to (plus (symbol_ref) (const_int)).  We want to simplify
-     this to CONST rtx.  */
-  exp = simplify_rtx (a);
-  if (exp)
-    a = exp;
-  exp = simplify_rtx (b);
-  if (exp)
-    b = exp;
-
   /* Increase the lifetime of any invariants moved further in code.  */
   update_reg_last_use (a, insert_before);
   update_reg_last_use (b, insert_before);
@@ -7670,7 +7657,7 @@ emit_iv_add_mult (b, m, a, reg, insert_before)
   seq = gen_sequence ();
   end_sequence ();
 
-  last = emit_insn_before (seq, insert_before);
+  emit_insn_before (seq, insert_before);
 
   /* It is entirely possible that the expansion created lots of new 
      registers.  Iterate over the sequence we just created and 
@@ -7681,47 +7668,14 @@ emit_iv_add_mult (b, m, a, reg, insert_before)
       int i;
       for (i = 0; i < XVECLEN (seq, 0); ++i)
        {
-         set = single_set (XVECEXP (seq, 0, i));
+         rtx set = single_set (XVECEXP (seq, 0, i));
          if (set && GET_CODE (SET_DEST (set)) == REG)
            record_base_value (REGNO (SET_DEST (set)), SET_SRC (set), 0);
        }
-      last = XVECEXP (seq, 0, i - 1);
     }
-  else
-    {
-      set = single_set (last);
-      if (set && GET_CODE (SET_DEST (set)) == REG)
-        record_base_value (REGNO (SET_DEST (set)), SET_SRC (set), 0);
-    }
-  if (!last)
-    return;
-  /* Sequence really ought to end by set storing final value to the register.
-    
-     Attach note indicating expression we've just calculated to it.  This is
-     important for second run of loop optimizer to understand strength reduced
-     givs from the first run.  */
-  if (GET_CODE (last) != INSN)
-    abort();
-  set = single_set (last);
-  if (!set)
-    return;
-  if (SET_DEST (set) != reg)
-    abort();
-
-  /* In case we start to emit some usefull notes to these insns, get abort
-     here, since we need to decide what information is more important.  */
-  if (find_reg_note (last, REG_EQUIV, NULL_RTX)
-      || find_reg_note (last, REG_EQUAL, NULL_RTX))
-    abort();
-
-  /* Expression we've just caluclated.  */
-  exp = simplify_gen_binary (PLUS, mode,
-                            simplify_gen_binary (MULT, mode, b, m),
-                            a);
-  REG_NOTES (last)
-       = gen_rtx_EXPR_LIST (REG_EQUAL,
-                            exp,
-                            REG_NOTES (last));
+  else if (GET_CODE (seq) == SET
+          && GET_CODE (SET_DEST (seq)) == REG)
+    record_base_value (REGNO (SET_DEST (seq)), SET_SRC (seq), 0);
 }
 \f
 /* Test whether A * B can be computed without