Blob Blame History Raw
2000-08-21  Jakub Jelinek  <jakub@redhat.com>

	* unroll.c (loop_find_equiv_value): If ret is modified between
	insn and loop_start, ret might not be equivalent to reg.

--- gcc/unroll.c.jj	Fri Aug 18 23:44:09 2000
+++ gcc/unroll.c	Mon Aug 21 17:28:09 2000
@@ -3550,6 +3550,11 @@ loop_find_equiv_value (loop, reg)
 		ret = XEXP (note, 0);
 	      else
 		ret = SET_SRC (set);
+
+	      /* We cannot do this if it changes between the
+		 assignment and loop start though.  */
+	      if (modified_between_p (ret, insn, loop_start))
+		ret = reg;
 	    }
 	  break;
 	}