From 890b30850f08010e6461f2af573cb7b53a82ef36 Mon Sep 17 00:00:00 2001 From: obrien Date: Sat, 27 May 2000 02:25:28 +0000 Subject: Bring in bug fixes from the GCC anoncvs server's "gcc-2_95-branch" branch as of May 26th, 2000. [these are changes March 31 - May 24th] --- contrib/gcc/unroll.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'contrib/gcc/unroll.c') diff --git a/contrib/gcc/unroll.c b/contrib/gcc/unroll.c index d6dbcf0..376bc99 100644 --- a/contrib/gcc/unroll.c +++ b/contrib/gcc/unroll.c @@ -3682,10 +3682,14 @@ loop_iterations (loop_start, loop_end, loop_info) 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, -- cgit v1.1