Revert these two patches:
authorMark Mitchell <mark@codesourcery.com>
Thu, 24 Jun 1999 14:59:23 +0000 (14:59 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Thu, 24 Jun 1999 14:59:23 +0000 (14:59 +0000)
Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
* loop.c (strength_reduce): When doing biv->giv conversion, update
reg note of NEXT->insn.
Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
* loop.c (strength_reduce): When doing biv->giv conversion, fix up
reg_biv_class.
(recombine_givs): Set ix field after sorting.

From-SVN: r27727

gcc/ChangeLog
gcc/loop.c

index 650648c..d55a44b 100644 (file)
@@ -1,3 +1,16 @@
+Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
+
+       Revert these two patches:
+
+       Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+       * loop.c (strength_reduce): When doing biv->giv conversion, update
+       reg note of NEXT->insn.
+
+       Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+       * loop.c (strength_reduce): When doing biv->giv conversion, fix up
+       reg_biv_class.
+       (recombine_givs): Set ix field after sorting.
+
 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
 
        * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
index 7bd0147..b616be0 100644 (file)
@@ -4065,7 +4065,6 @@ strength_reduce (scan_start, end, loop_top, insn_count,
                fprintf (loop_dump_stream, "is giv of biv %d\n", bl2->regno);
              /* Let this giv be discovered by the generic code.  */
              REG_IV_TYPE (bl->regno) = UNKNOWN_INDUCT;
-             reg_biv_class[bl->regno] = NULL_PTR;
              /* We can get better optimization if we can move the giv setting
                 before the first giv use.  */
              if (dominator
@@ -4117,13 +4116,7 @@ strength_reduce (scan_start, end, loop_top, insn_count,
                }
              /* Remove this biv from the chain.  */
              if (bl->next)
-               {
-                 /* We move the following giv from *bl->next into *bl.
-                    We have to update reg_biv_class for that moved biv
-                    to point to its new address.  */
-                 *bl = *bl->next;
-                 reg_biv_class[bl->regno] = bl;
-               }
+               *bl = *bl->next;
              else
                {
                  *backbl = 0;
@@ -4198,7 +4191,7 @@ strength_reduce (scan_start, end, loop_top, insn_count,
          for (vp = &bl->biv, next = *vp; v = next, next = v->next_iv;)
            {
              HOST_WIDE_INT offset;
-             rtx set, add_val, old_reg, dest_reg, last_use_insn, note;
+             rtx set, add_val, old_reg, dest_reg, last_use_insn;
              int old_regno, new_regno;
 
              if (! v->always_executed
@@ -4304,13 +4297,7 @@ strength_reduce (scan_start, end, loop_top, insn_count,
     
              REG_IV_TYPE (new_regno) = GENERAL_INDUCT;
              REG_IV_INFO (new_regno) = v;
-
-             /* If next_insn has a REG_EQUAL note that mentiones OLD_REG,
-                it must be replaced.  */
-             note = find_reg_note (next->insn, REG_EQUAL, NULL_RTX);
-             if (note && reg_mentioned_p (old_reg, XEXP (note, 0)))
-               XEXP (note, 0) = copy_rtx (SET_SRC (single_set (next->insn)));
-
+    
              /* Remove the increment from the list of biv increments,
                 and record it as a giv.  */
              *vp = next;
@@ -7210,18 +7197,16 @@ recombine_givs (bl, loop_start, loop_end, unroll_p)
       for (p = v->insn; INSN_UID (p) >= max_uid_for_loop; )
        p = PREV_INSN (p);
       stats[i].start_luid = INSN_LUID (p);
+      v->ix = i;
       i++;
     }
 
   qsort (stats, giv_count, sizeof(*stats), cmp_recombine_givs_stats);
 
-  /* Set up the ix field for each giv in stats to name
-     the corresponding index into stats, and
-     do the actual most-recently-used recombination.  */
+  /* Do the actual most-recently-used recombination.  */
   for (last_giv = 0, i = giv_count - 1; i >= 0; i--)
     {
       v = giv_array[stats[i].giv_number];
-      v->ix = i;
       if (v->same)
        {
          struct induction *old_same = v->same;