aboutsummaryrefslogtreecommitdiff
path: root/gcc/passes.def
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2015-06-17 19:59:25 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2015-06-17 19:59:25 +0200
commit8c8b9f3265820507a1a9472fee7384b265692380 (patch)
tree2678bfd5b1d0ccb490085b30a993176696dcaf3b /gcc/passes.def
parentf6e3667f976a0592eb156d948a9dfe240250778d (diff)
downloadgcc-8c8b9f3265820507a1a9472fee7384b265692380.zip
gcc-8c8b9f3265820507a1a9472fee7384b265692380.tar.gz
gcc-8c8b9f3265820507a1a9472fee7384b265692380.tar.bz2
re PR middle-end/66429 (ICE in expand_GOMP_SIMD_LAST_LANE)
PR middle-end/66429 * omp-low.c (expand_omp_taskreg): Use child_cfun instead of DECL_STRUCT_FUNCTION (child_fn). Or in has_simduid_loops and has_force_vectorize_loops flags from cfun into child_cfun. (expand_omp_simd): For broken loop, set cfun->has_simduid_loops if simduid is non-NULL. * tree-pass.h (make_pass_simduid_cleanup): New prototype. * passes.def (pass_simduid_cleanup): Add new pass after loop passes. * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary indirection from htab argument's type. (shrink_simd_arrays): New function. (vectorize_loops): Use it. Adjust adjust_simduid_builtins caller. Don't call adjust_simduid_builtins if there are no loops. (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables. (pass_simduid_cleanup::execute): New method. (make_pass_simduid_cleanup): New function. * c-c++-common/gomp/pr66429.c: New test. From-SVN: r224568
Diffstat (limited to 'gcc/passes.def')
-rw-r--r--gcc/passes.def1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/passes.def b/gcc/passes.def
index 4690e23..9ced655 100644
--- a/gcc/passes.def
+++ b/gcc/passes.def
@@ -270,6 +270,7 @@ along with GCC; see the file COPYING3. If not see
PUSH_INSERT_PASSES_WITHIN (pass_tree_no_loop)
NEXT_PASS (pass_slp_vectorize);
POP_INSERT_PASSES ()
+ NEXT_PASS (pass_simduid_cleanup);
NEXT_PASS (pass_lower_vector_ssa);
NEXT_PASS (pass_cse_reciprocals);
NEXT_PASS (pass_reassoc);