summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-ssa-loop.c')
-rw-r--r--gcc/tree-ssa-loop.c58
1 files changed, 35 insertions, 23 deletions
diff --git a/gcc/tree-ssa-loop.c b/gcc/tree-ssa-loop.c
index 8657dac1882..ee1b9b374ea 100644
--- a/gcc/tree-ssa-loop.c
+++ b/gcc/tree-ssa-loop.c
@@ -87,14 +87,15 @@ struct tree_opt_pass pass_tree_loop =
/* Loop optimizer initialization. */
-static void
+static unsigned int
tree_ssa_loop_init (void)
{
current_loops = tree_loop_optimizer_init ();
if (!current_loops)
- return;
+ return 0;
scev_initialize (current_loops);
+ return 0;
}
struct tree_opt_pass pass_tree_loop_init =
@@ -116,13 +117,14 @@ struct tree_opt_pass pass_tree_loop_init =
/* Loop invariant motion pass. */
-static void
+static unsigned int
tree_ssa_loop_im (void)
{
if (!current_loops)
- return;
+ return 0;
tree_ssa_lim (current_loops);
+ return 0;
}
static bool
@@ -150,13 +152,14 @@ struct tree_opt_pass pass_lim =
/* Loop unswitching pass. */
-static void
+static unsigned int
tree_ssa_loop_unswitch (void)
{
if (!current_loops)
- return;
+ return 0;
tree_ssa_unswitch_loops (current_loops);
+ return 0;
}
static bool
@@ -184,10 +187,11 @@ struct tree_opt_pass pass_tree_unswitch =
/* Loop autovectorization. */
-static void
+static unsigned int
tree_vectorize (void)
{
vectorize_loops (current_loops);
+ return 0;
}
static bool
@@ -215,13 +219,14 @@ struct tree_opt_pass pass_vectorize =
/* Loop nest optimizations. */
-static void
+static unsigned int
tree_linear_transform (void)
{
if (!current_loops)
- return;
+ return 0;
linear_transform_loops (current_loops);
+ return 0;
}
static bool
@@ -249,13 +254,14 @@ struct tree_opt_pass pass_linear_transform =
/* Canonical induction variable creation pass. */
-static void
+static unsigned int
tree_ssa_loop_ivcanon (void)
{
if (!current_loops)
- return;
+ return 0;
canonicalize_induction_variables (current_loops);
+ return 0;
}
static bool
@@ -310,13 +316,14 @@ struct tree_opt_pass pass_scev_cprop =
/* Remove empty loops. */
-static void
+static unsigned int
tree_ssa_empty_loop (void)
{
if (!current_loops)
- return;
+ return 0;
remove_empty_loops (current_loops);
+ return 0;
}
struct tree_opt_pass pass_empty_loop =
@@ -338,14 +345,15 @@ struct tree_opt_pass pass_empty_loop =
/* Record bounds on numbers of iterations of loops. */
-static void
+static unsigned int
tree_ssa_loop_bounds (void)
{
if (!current_loops)
- return;
+ return 0;
estimate_numbers_of_iterations (current_loops);
scev_reset ();
+ return 0;
}
struct tree_opt_pass pass_record_bounds =
@@ -367,16 +375,17 @@ struct tree_opt_pass pass_record_bounds =
/* Complete unrolling of loops. */
-static void
+static unsigned int
tree_complete_unroll (void)
{
if (!current_loops)
- return;
+ return 0;
tree_unroll_loops_completely (current_loops,
flag_unroll_loops
|| flag_peel_loops
|| optimize >= 3);
+ return 0;
}
static bool
@@ -404,13 +413,14 @@ struct tree_opt_pass pass_complete_unroll =
/* Prefetching. */
-static void
+static unsigned int
tree_ssa_loop_prefetch (void)
{
if (!current_loops)
- return;
+ return 0;
tree_ssa_prefetch_arrays (current_loops);
+ return 0;
}
static bool
@@ -438,13 +448,14 @@ struct tree_opt_pass pass_loop_prefetch =
/* Induction variable optimizations. */
-static void
+static unsigned int
tree_ssa_loop_ivopts (void)
{
if (!current_loops)
- return;
+ return 0;
tree_ssa_iv_optimize (current_loops);
+ return 0;
}
static bool
@@ -474,16 +485,17 @@ struct tree_opt_pass pass_iv_optimize =
/* Loop optimizer finalization. */
-static void
+static unsigned int
tree_ssa_loop_done (void)
{
if (!current_loops)
- return;
+ return 0;
free_numbers_of_iterations_estimates (current_loops);
scev_finalize ();
loop_optimizer_finalize (current_loops);
current_loops = NULL;
+ return 0;
}
struct tree_opt_pass pass_tree_loop_done =