PR middle-end/66429
commit9918db4464b0b328d14819541fbc3bf855c6ade1
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 17 Jun 2015 17:59:25 +0000 (17 17:59 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 17 Jun 2015 17:59:25 +0000 (17 17:59 +0000)
tree2678bfd5b1d0ccb490085b30a993176696dcaf3b
parent4a875e1f1d7dca1f03cc71a8234862aaf03e5d18
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@224568 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/omp-low.c
gcc/passes.def
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/gomp/pr66429.c [new file with mode: 0644]
gcc/tree-pass.h
gcc/tree-vectorizer.c