]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/omp-expand.c
gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate conditional...
authorJakub Jelinek <jakub@redhat.com>
Tue, 4 Jun 2019 12:49:03 +0000 (14:49 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 4 Jun 2019 12:49:03 +0000 (14:49 +0200)
commit7855700e63045fcd807718625e1c45f561dc7085
tree89b18afd8600dee3f74ec8eee9799a4697964396
parent0697ecea7cc6f2a0813716fcf8d922f312f59dce
gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate conditional on combined for simd.

* gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
conditional on combined for simd.
* omp-low.c (struct omp_context): Add combined_into_simd_safelen0
member.
(lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
constructs, don't remove lastprivate_conditional_map, but instead set
ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
to parent construct temporaries.
(lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
like !ctx->lastprivate_conditional_map.
(lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
use up->outer context instead of up.
* omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
gimple_omp_for_combined_p.
(expand_omp_for_static_nochunk): Likewise.
(expand_omp_for_static_chunk): Add forgotten cond_var bump that was
probably moved over into expand_omp_for_generic rather than being copied
there.
gcc/cp/
* cp-tree.h (CP_OMP_CLAUSE_INFO): Allow for any clauses up to _condvar_
instead of only up to linear.
gcc/testsuite/
* c-c++-common/gomp/lastprivate-conditional-2.c (foo): Don't expect
a sorry_at on any of the clauses.
libgomp/
* testsuite/libgomp.c-c++-common/lastprivate-conditional-7.c: New test.
* testsuite/libgomp.c-c++-common/lastprivate-conditional-8.c: New test.
* testsuite/libgomp.c-c++-common/lastprivate-conditional-9.c: New test.
* testsuite/libgomp.c-c++-common/lastprivate-conditional-10.c: New test.

From-SVN: r271907
13 files changed:
gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/gimplify.c
gcc/omp-expand.c
gcc/omp-low.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/gomp/lastprivate-conditional-2.c
libgomp/ChangeLog
libgomp/testsuite/libgomp.c-c++-common/lastprivate-conditional-10.c [new file with mode: 0644]
libgomp/testsuite/libgomp.c-c++-common/lastprivate-conditional-7.c [new file with mode: 0644]
libgomp/testsuite/libgomp.c-c++-common/lastprivate-conditional-8.c [new file with mode: 0644]
libgomp/testsuite/libgomp.c-c++-common/lastprivate-conditional-9.c [new file with mode: 0644]