aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop.c
diff options
context:
space:
mode:
authorZdenek Dvorak <dvorakz@suse.cz>2005-05-06 23:11:29 +0200
committerZdenek Dvorak <rakdver@gcc.gnu.org>2005-05-06 21:11:29 +0000
commit91a01f21abfe192fd660da55be548f52008e3f51 (patch)
tree7fbe820f0e0b444ff5d1c9867f6355dcd5f85a91 /gcc/tree-ssa-loop.c
parent4fbe4f91ff05cb6f4f9507fde1b63102a117e40f (diff)
downloadgcc-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.c7
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 =