summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop.c
diff options
context:
space:
mode:
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-06 21:11:29 +0000
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-06 21:11:29 +0000
commit604f7b8aa757d1e048ae7753892e7a54abdf6639 (patch)
tree7fbe820f0e0b444ff5d1c9867f6355dcd5f85a91 /gcc/tree-ssa-loop.c
parentf30c7901475fdf64ecad7067572e09e1b561f032 (diff)
downloadgcc-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.c7
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 =