diff options
author | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-06 21:11:29 +0000 |
---|---|---|
committer | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-06 21:11:29 +0000 |
commit | 604f7b8aa757d1e048ae7753892e7a54abdf6639 (patch) | |
tree | 7fbe820f0e0b444ff5d1c9867f6355dcd5f85a91 /gcc/tree-ssa-loop.c | |
parent | f30c7901475fdf64ecad7067572e09e1b561f032 (diff) | |
download | gcc-604f7b8aa757d1e048ae7753892e7a54abdf6639.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99334 138bc75d-0d04-0410-961f-82ee72b054a4
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 b86820ecfa4..f7a96fb2aa7 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 = |