From: Jeffrey A Law Date: Mon, 3 Apr 2000 08:35:12 +0000 (+0000) Subject: unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set on iteration_var. X-Git-Tag: prereleases/gcc-2.95.3-test1~75 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=27dfd15c4411c0ff56fca1cd11173562b57c2463;p=thirdparty%2Fgcc.git unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set on iteration_var. 2000-01-20 Michael Hayes * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set on iteration_var. From-SVN: r32879 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f1364d1c8d1f..26253bf87b00 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Mon Apr 3 02:31:32 2000 Jeffrey A Law (law@cygnus.com) + + 2000-01-20 Michael Hayes + * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set + on iteration_var. + Wed Mar 22 13:11:54 2000 David Edelsohn * rs6000.c (reg_or_u_cint_operand): New function. diff --git a/gcc/unroll.c b/gcc/unroll.c index d6dbcf0fbc1d..376bc996678b 100644 --- a/gcc/unroll.c +++ b/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,