aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-pass.h
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2014-11-13 10:51:58 +0000
committerTom de Vries <vries@gcc.gnu.org>2014-11-13 10:51:58 +0000
commit187518942c654f1d144a76a262ba8a7b904f7b9d (patch)
tree3873e81fede18285707d2a798b557f5b571b0ea0 /gcc/tree-pass.h
parentd82f1e13053446d0b0fd8e8e3b26f5d7e579bfd7 (diff)
downloadgcc-187518942c654f1d144a76a262ba8a7b904f7b9d.zip
gcc-187518942c654f1d144a76a262ba8a7b904f7b9d.tar.gz
gcc-187518942c654f1d144a76a262ba8a7b904f7b9d.tar.bz2
Run pass_expand_omp_ssa after pass_paralellize_loops
2014-11-13 Tom de Vries <tom@codesourcery.com> * omp-low.c (pass_data_expand_omp): Set properties_provided to PROP_gimple_eomp. (pass_expand_omp::gate): Remove function. Move gate expression to ... (pass_expand_omp::execute): ... here, as new variable gate. Add early exit if gate is false. (pass_data pass_data_expand_omp_ssa): New pass_data. (class pass_expand_omp_ssa): New pass. (make_pass_expand_omp_ssa): New function. * passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN instead of NEXT_PASS. (pass_expand_omp_ssa): Add after pass_parallelize_loops. * tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local. (pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg and TODO_rebuild_alias yet. Add TODO_update_ssa. Set cfun->omp_expand_needed. * tree-pass.h: Add define PROP_gimple_eomp. (make_pass_expand_omp_ssa): Declare. From-SVN: r217474
Diffstat (limited to 'gcc/tree-pass.h')
-rw-r--r--gcc/tree-pass.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h
index a3efdd8..25ff364 100644
--- a/gcc/tree-pass.h
+++ b/gcc/tree-pass.h
@@ -220,6 +220,7 @@ protected:
#define PROP_gimple_lcx (1 << 10) /* lowered complex */
#define PROP_loops (1 << 11) /* preserve loop structures */
#define PROP_gimple_lvec (1 << 12) /* lowered vector */
+#define PROP_gimple_eomp (1 << 13) /* no OpenMP directives */
#define PROP_trees \
(PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh | PROP_gimple_lomp)
@@ -399,6 +400,7 @@ extern gimple_opt_pass *make_pass_lower_vector_ssa (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_lower_omp (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_diagnose_omp_blocks (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_expand_omp (gcc::context *ctxt);
+extern gimple_opt_pass *make_pass_expand_omp_ssa (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_object_sizes (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_strlen (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_fold_builtins (gcc::context *ctxt);