]> gcc.gnu.org Git - gcc.git/commitdiff
Fix lossage caused by applying old version of my previous patch.
authorJan Hubicka <hubicka@gcc.gnu.org>
Wed, 19 Apr 2000 12:45:50 +0000 (12:45 +0000)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 19 Apr 2000 12:45:50 +0000 (12:45 +0000)
From-SVN: r33254

gcc/loop.c
gcc/loop.h

index ac19372ee2a0d3140457e06b3621b42704bf3633..91da78b3f954d98d0f97d10816cb47281ce3fd60 100644 (file)
@@ -308,8 +308,8 @@ static int replace_loop_reg PARAMS ((rtx *, void *));
 static void note_reg_stored PARAMS ((rtx, rtx, void *));
 static void try_copy_prop PARAMS ((const struct loop *, rtx, unsigned int));
 static int replace_label PARAMS ((rtx *, void *));
-static void check_insn_for_givs PARAMS((struct loop *, rtx, int, int));
-static void check_insn_for_bivs PARAMS((struct loop *, rtx, int, int));
+static rtx check_insn_for_givs PARAMS((struct loop *, rtx, int, int));
+static rtx check_insn_for_bivs PARAMS((struct loop *, rtx, int, int));
 
 typedef struct rtx_and_int {
   rtx r;
@@ -3730,7 +3730,7 @@ for_each_insn_in_loop (loop, fncall)
        p != NULL_RTX;
        p = next_insn_in_loop (loop, p))
     {
-      fncall (loop, p, maybe_multiple, not_every_iteration);
+      p = fncall (loop, p, not_every_iteration, not_every_iteration);
 
       /* Past CODE_LABEL, we get to insns that may be executed multiple
          times.  The only way we can be sure that they can't is if every
@@ -5068,7 +5068,7 @@ egress:
 }
 \f
 /*Record all basic induction variables calculated in the insn.  */
-static void
+static rtx
 check_insn_for_bivs (loop, p, not_every_iteration, maybe_multiple)
      struct loop *loop;
      rtx p;
@@ -5112,12 +5112,13 @@ check_insn_for_bivs (loop, p, not_every_iteration, maybe_multiple)
            REG_IV_TYPE (REGNO (dest_reg)) = NOT_BASIC_INDUCT;
        }
     }
+  return p;
 }
 \f
 /* Record all givs calculated in the insn.  
    A register is a giv if: it is only set once, it is a function of a
    biv and a constant (or invariant), and it is not a biv.  */
-static void
+static rtx
 check_insn_for_givs (loop, p, not_every_iteration, maybe_multiple)
      struct loop *loop;
      rtx p;
@@ -5141,7 +5142,7 @@ check_insn_for_givs (loop, p, not_every_iteration, maybe_multiple)
 
       dest_reg = SET_DEST (set);
       if (REGNO (dest_reg) < FIRST_PSEUDO_REGISTER)
-       return;
+       return p;
 
       if (/* SET_SRC is a giv.  */
          (general_induction_var (loop, SET_SRC (set), &src_reg, &add_val,
@@ -5196,7 +5197,7 @@ check_insn_for_givs (loop, p, not_every_iteration, maybe_multiple)
   if (GET_CODE (p) == INSN || GET_CODE (p) == JUMP_INSN
     || GET_CODE (p) == CODE_LABEL)
     update_giv_derive (loop, p);
-
+  return p;
 }
 \f
 /* Return 1 if X is a valid source for an initial value (or as value being
index 390c1ce4b7c355a9aef74cd4a62b30d42b01d255..9c4affb84429443de544cb6fa49a54e3f61aaa74 100644 (file)
@@ -247,6 +247,6 @@ void emit_unrolled_add PARAMS ((rtx, rtx, rtx));
 int back_branch_in_range_p PARAMS ((const struct loop *, rtx));
 
 int loop_insn_first_p PARAMS ((rtx, rtx));
-typedef void (*loop_insn_callback ) PARAMS ((struct loop *, rtx, int, int));
+typedef rtx (*loop_insn_callback ) PARAMS ((struct loop *, rtx, int, int));
 void for_each_insn_in_loop PARAMS ((struct loop *, loop_insn_callback));
 
This page took 0.082239 seconds and 5 git commands to generate.