summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/unroll.c
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>1999-07-10 23:03:59 +0000
committerobrien <obrien@FreeBSD.org>1999-07-10 23:03:59 +0000
commitd4db5fb866b7ad5216abd5047774a3973b9901a9 (patch)
treeedca008aa0e9cdfae2ef7478f9109ca7f3a2a028 /contrib/gcc/unroll.c
parentb822db150531f5b7067d4d970080b7358e07ae89 (diff)
downloadFreeBSD-src-d4db5fb866b7ad5216abd5047774a3973b9901a9.zip
FreeBSD-src-d4db5fb866b7ad5216abd5047774a3973b9901a9.tar.gz
Virgin import of GCC 2.7.2.3
Diffstat (limited to 'contrib/gcc/unroll.c')
-rw-r--r--contrib/gcc/unroll.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/contrib/gcc/unroll.c b/contrib/gcc/unroll.c
index c598578..4ba6efb 100644
--- a/contrib/gcc/unroll.c
+++ b/contrib/gcc/unroll.c
@@ -2908,12 +2908,19 @@ find_splittable_givs (bl, unroll_type, loop_start, loop_end, increment,
#endif
}
- /* Givs are only updated once by definition. Mark it so if this is
+ /* Unreduced givs are only updated once by definition. Reduced givs
+ are updated as many times as their biv is. Mark it so if this is
a splittable register. Don't need to do anything for address givs
where this may not be a register. */
if (GET_CODE (v->new_reg) == REG)
- splittable_regs_updates[REGNO (v->new_reg)] = 1;
+ {
+ int count = 1;
+ if (! v->ignore)
+ count = reg_biv_class[REGNO (v->src_reg)]->biv_count;
+
+ splittable_regs_updates[REGNO (v->new_reg)] = count;
+ }
result++;
OpenPOWER on IntegriCloud