aboutsummaryrefslogtreecommitdiff
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.c44
1 files changed, 9 insertions, 35 deletions
diff --git a/gcc/tree-ssa-loop.c b/gcc/tree-ssa-loop.c
index 84e24a1..38e7b13 100644
--- a/gcc/tree-ssa-loop.c
+++ b/gcc/tree-ssa-loop.c
@@ -44,12 +44,6 @@ along with GCC; see the file COPYING3. If not see
/* The loop superpass. */
-static bool
-gate_tree_loop (void)
-{
- return flag_tree_loop_optimize != 0;
-}
-
namespace {
const pass_data pass_data_tree_loop =
@@ -74,7 +68,7 @@ public:
{}
/* opt_pass methods: */
- bool gate () { return gate_tree_loop (); }
+ virtual bool gate (function *) { return flag_tree_loop_optimize != 0; }
}; // class pass_tree_loop
@@ -152,12 +146,6 @@ tree_loop_vectorize (void)
return vectorize_loops ();
}
-static bool
-gate_tree_loop_vectorize (void)
-{
- return flag_tree_loop_vectorize || cfun->has_force_vectorize_loops;
-}
-
namespace {
const pass_data pass_data_vectorize =
@@ -182,7 +170,11 @@ public:
{}
/* opt_pass methods: */
- bool gate () { return gate_tree_loop_vectorize (); }
+ virtual bool gate (function *fun)
+ {
+ return flag_tree_loop_vectorize || fun->has_force_vectorize_loops;
+ }
+
unsigned int execute () { return tree_loop_vectorize (); }
}; // class pass_vectorize
@@ -207,12 +199,6 @@ check_data_deps (void)
return 0;
}
-static bool
-gate_check_data_deps (void)
-{
- return flag_check_data_deps != 0;
-}
-
namespace {
const pass_data pass_data_check_data_deps =
@@ -237,7 +223,7 @@ public:
{}
/* opt_pass methods: */
- bool gate () { return gate_check_data_deps (); }
+ virtual bool gate (function *) { return flag_check_data_deps != 0; }
unsigned int execute () { return check_data_deps (); }
}; // class pass_check_data_deps
@@ -252,12 +238,6 @@ make_pass_check_data_deps (gcc::context *ctxt)
/* Propagation of constants using scev. */
-static bool
-gate_scev_const_prop (void)
-{
- return flag_tree_scev_cprop;
-}
-
namespace {
const pass_data pass_data_scev_cprop =
@@ -283,7 +263,7 @@ public:
{}
/* opt_pass methods: */
- bool gate () { return gate_scev_const_prop (); }
+ virtual bool gate (function *) { return flag_tree_scev_cprop; }
unsigned int execute () { return scev_const_prop (); }
}; // class pass_scev_cprop
@@ -357,12 +337,6 @@ tree_ssa_loop_ivopts (void)
return 0;
}
-static bool
-gate_tree_ssa_loop_ivopts (void)
-{
- return flag_ivopts != 0;
-}
-
namespace {
const pass_data pass_data_iv_optimize =
@@ -387,7 +361,7 @@ public:
{}
/* opt_pass methods: */
- bool gate () { return gate_tree_ssa_loop_ivopts (); }
+ virtual bool gate (function *) { return flag_ivopts != 0; }
unsigned int execute () { return tree_ssa_loop_ivopts (); }
}; // class pass_iv_optimize