summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/unroll.c
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2000-05-27 02:25:28 +0000
committerobrien <obrien@FreeBSD.org>2000-05-27 02:25:28 +0000
commit890b30850f08010e6461f2af573cb7b53a82ef36 (patch)
treeb725d094db3c58a89d4ee7be9eac2c5e09532e13 /contrib/gcc/unroll.c
parent89d6e979f6e51927c13633bc1c374b05a37d0238 (diff)
downloadFreeBSD-src-890b30850f08010e6461f2af573cb7b53a82ef36.zip
FreeBSD-src-890b30850f08010e6461f2af573cb7b53a82ef36.tar.gz
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]
Diffstat (limited to 'contrib/gcc/unroll.c')
-rw-r--r--contrib/gcc/unroll.c12
1 files changed, 8 insertions, 4 deletions
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,
OpenPOWER on IntegriCloud