diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2005-05-06 23:11:29 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2005-05-06 21:11:29 +0000 |
commit | 91a01f21abfe192fd660da55be548f52008e3f51 (patch) | |
tree | 7fbe820f0e0b444ff5d1c9867f6355dcd5f85a91 /gcc/tree-ssa-loop.c | |
parent | 4fbe4f91ff05cb6f4f9507fde1b63102a117e40f (diff) | |
download | gcc-91a01f21abfe192fd660da55be548f52008e3f51.zip gcc-91a01f21abfe192fd660da55be548f52008e3f51.tar.gz gcc-91a01f21abfe192fd660da55be548f52008e3f51.tar.bz2 |
re PR tree-optimization/19401 (Trivial loop not unrolled)
PR tree-optimization/19401
* tree-flow.h (tree_unroll_loops_completely): Declaration changed.
* tree-ssa-loop-ivcanon.c (enum unroll_level): New.
(estimated_unrolled_size): New function.
(try_unroll_loop_completely, canonicalize_loop_induction_variables,
tree_unroll_loops_completely): Always unroll loops if the code size
does not increase.
* tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
loops should be unrolled completely.
(gate_tree_complete_unroll): Run complete unrolling unconditionally.
From-SVN: r99334
Diffstat (limited to 'gcc/tree-ssa-loop.c')
-rw-r--r-- | gcc/tree-ssa-loop.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/tree-ssa-loop.c b/gcc/tree-ssa-loop.c index b86820e..f7a96fb 100644 --- a/gcc/tree-ssa-loop.c +++ b/gcc/tree-ssa-loop.c @@ -323,13 +323,16 @@ tree_complete_unroll (void) if (!current_loops) return; - tree_unroll_loops_completely (current_loops); + tree_unroll_loops_completely (current_loops, + flag_unroll_loops + || flag_peel_loops + || optimize >= 3); } static bool gate_tree_complete_unroll (void) { - return flag_peel_loops || flag_unroll_loops; + return true; } struct tree_opt_pass pass_complete_unroll = |