re PR middle-end/66429 (ICE in expand_GOMP_SIMD_LAST_LANE)
authorJakub Jelinek <jakub@redhat.com>
Wed, 17 Jun 2015 18:11:42 +0000 (20:11 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 17 Jun 2015 18:11:42 +0000 (20:11 +0200)
commita1ceb6041e32e5ab4b0c38dc5b52fe9d82948719
tree9fb5fd8414b3ccc7263ca8c4c655d25b948628eb
parent64b5fcfa3bc6ac1d5f0bab9d5de3a8cd2259d70e
re PR middle-end/66429 (ICE in expand_GOMP_SIMD_LAST_LANE)

PR middle-end/66429
* omp-low.c (expand_omp_taskreg, expand_omp_target): 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.

From-SVN: r224571
gcc/ChangeLog
gcc/omp-low.c