diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1997-06-23 19:47:33 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1997-06-23 19:47:33 -0700 |
commit | 3bb24246626de6168ef3cefbd53180d1234babc3 (patch) | |
tree | 4dc84dda6ea0dae762348f72adeb7dfb0a47fbe7 | |
parent | 3dfa8ff88d1ab90133db0e157987cd945b92cbb4 (diff) | |
download | gcc-3bb24246626de6168ef3cefbd53180d1234babc3.zip gcc-3bb24246626de6168ef3cefbd53180d1234babc3.tar.gz gcc-3bb24246626de6168ef3cefbd53180d1234babc3.tar.bz2 |
(find_splittable_givs): Set splittable_regs_updates to
biv_count for reduced givs.
From-SVN: r14296
-rw-r--r-- | gcc/unroll.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/unroll.c b/gcc/unroll.c index 74e54bd..3f5c548 100644 --- a/gcc/unroll.c +++ b/gcc/unroll.c @@ -2971,12 +2971,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++; |