diff options
author | Richard Henderson <rth@redhat.com> | 2002-04-02 23:56:47 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-04-02 23:56:47 -0800 |
commit | 6584b4aa8bf0515432f520c3ac8379e3bd70e8d2 (patch) | |
tree | 20695b9c1c06a51bef949e2e27c2c1bc4213eb58 /gcc/loop.c | |
parent | 0acf409fdc1266c03caf70c778e8a79ce2f59261 (diff) | |
download | gcc-6584b4aa8bf0515432f520c3ac8379e3bd70e8d2.zip gcc-6584b4aa8bf0515432f520c3ac8379e3bd70e8d2.tar.gz gcc-6584b4aa8bf0515432f520c3ac8379e3bd70e8d2.tar.bz2 |
re PR rtl-optimization/4311 (unrolling loops creates non-ending loop)
PR opt/4311
* loop.h (LOOP_FIRST_PASS): New.
* loop.c (strength_reduce): Mind it when deciding to unroll.
* toplev.c (rest_of_compilation): Set it.
From-SVN: r51798
Diffstat (limited to 'gcc/loop.c')
-rw-r--r-- | gcc/loop.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -5214,7 +5214,8 @@ strength_reduce (loop, flags) collected. Always unroll loops that would be as small or smaller unrolled than when rolled. */ if ((flags & LOOP_UNROLL) - || (loop_info->n_iterations > 0 + || (!(flags & LOOP_FIRST_PASS) + && loop_info->n_iterations > 0 && unrolled_insn_copies <= insn_count)) unroll_loop (loop, insn_count, 1); |