+Mon Apr 3 02:31:32 2000 Jeffrey A Law (law@cygnus.com)
+
+ 2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
+ * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
+ on iteration_var.
+
Wed Mar 22 13:11:54 2000 David Edelsohn <edelsohn@gnu.org>
* rs6000.c (reg_or_u_cint_operand): New function.
return 0;
}
- /* The only new registers that care created before loop iterations are
- givs made from biv increments, so this should never occur. */
-
- if ((unsigned) REGNO (iteration_var) >= reg_iv_type->num_elements)
+ /* The only new registers that are created before loop iterations
+ are givs made from biv increments or registers created by
+ load_mems. In the latter case, it is possible that try_copy_prop
+ will propagate a new pseudo into the old iteration register but
+ this will be marked by having the REG_USERVAR_P bit set. */
+
+ if ((unsigned) REGNO (iteration_var) >= reg_iv_type->num_elements
+ && ! REG_USERVAR_P (iteration_var))
abort ();
iteration_info (iteration_var, &initial_value, &increment,