gcc/libgomp/testsuite/libgomp.c
Jakub Jelinek 8b60459465 openmp: Don't optimize shared to firstprivate on task with depend clause
The attached testcase is miscompiled, because we optimize shared clauses
to firstprivate when task body can't modify the variable even when the
task has depend clause.  That is wrong, because firstprivate means the
variable will be copied immediately when the task is created, while with
depend clause some other task might change it later before the dependencies
are satisfied and the task should observe the value only after the change.

2020-12-18  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (struct gimplify_omp_ctx): Add has_depend member.
	(gimplify_scan_omp_clauses): Set it to true if OMP_CLAUSE_DEPEND
	appears on OMP_TASK.
	(gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Force
	GOVD_WRITTEN on shared variables if task construct has depend clause.

	* testsuite/libgomp.c/task-6.c: New test.
2020-12-18 21:43:20 +01:00
..
appendix-a openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
examples-4
affinity-1.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
affinity-2.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
atomic-1.c
atomic-2.c
atomic-3.c
atomic-4.c
atomic-5.c
atomic-6.c
atomic-10.c
atomic-11.c
atomic-12.c
atomic-13.c
atomic-14.c
atomic-15.c
atomic-16.c
atomic-17.c
autopar-1.c
autopar-2.c
autopar-3.c
autopar-4.c
autopar-5.c
autopar-6.c
autopar-7.c
autopar-8.c
barrier-1.c
c.exp
cancel-for-1.c
cancel-for-2.c
cancel-parallel-1.c
cancel-parallel-2.c
cancel-parallel-3.c
cancel-sections-1.c
collapse-1.c
collapse-2.c
collapse-3.c
copyin-1.c
copyin-2.c
copyin-3.c
critical-1.c
critical-2.c
debug-1.c
declare-variant-1.c lto: LTO cgraph support for late declare variant resolution [PR96680] 2020-10-28 10:29:09 +01:00
depend-1.c
depend-2.c
depend-3.c
depend-4.c
depend-5.c
depend-6.c
depend-7.c
depend-8.c
depend-9.c
depend-10.c
doacross-1.c
doacross-2.c
doacross-3.c
icv-1.c
icv-2.c
lib-1.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
lib-2.c openmp: Add support for the omp_get_supported_active_levels runtime library routine 2020-10-13 13:21:02 -07:00
linear-1.c
lock-1.c
lock-2.c
lock-3.c
loop-1.c
loop-2.c
loop-3.c
loop-4.c
loop-5.c
loop-6.c
loop-7.c
loop-8.c
loop-9.c
loop-10.c
loop-11.c
loop-12.c
loop-16.c
loop-17.c openmp: Non-rectangular loop support for non-composite worksharing loops and distribute 2020-06-27 12:43:36 +02:00
loop-18.c openmp: Non-rectangular loop support for non-composite worksharing loops and distribute 2020-06-27 12:43:36 +02:00
loop-19.c openmp: Optimize triangular loop logical iterator to actual iterators computation using search for quadratic equation root(s) 2020-07-09 12:07:17 +02:00
loop-20.c openmp: Optimize triangular loop logical iterator to actual iterators computation using search for quadratic equation root(s) 2020-07-09 12:07:17 +02:00
loop-21.c openmp: Adjust outer bounds of non-rect loops 2020-07-14 10:31:59 +02:00
loop-22.c openmp: Add support for non-rectangular loops in taskloop construct 2020-08-13 09:06:05 +02:00
loop-23.c openmp: Add support for non-rectangular loops in taskloop construct 2020-08-13 09:06:05 +02:00
loop-24.c openmp: Add support for non-rectangular loops in taskloop construct 2020-08-13 09:06:05 +02:00
loop-25.c openmp: Add support for non-rect simd and improve collapsed simd support 2020-09-25 10:43:37 +02:00
nested-1.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
nested-2.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
nested-3.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
nestedfn-1.c
nestedfn-2.c
nestedfn-3.c
nestedfn-4.c
nestedfn-5.c
nestedfn-6.c
nqueens-1.c
omp_hello.c
omp_matvec.c
omp_orphan.c
omp_reduction.c
omp_workshare1.c
omp_workshare2.c
omp_workshare3.c
omp_workshare4.c
omp-loop01.c
omp-loop02.c
omp-loop03.c
omp-nested-1.c
omp-nested-2.c
omp-nested-3.c
omp-parallel-for.c
omp-parallel-if.c
omp-single-1.c
omp-single-2.c
omp-single-3.c
ordered-1.c
ordered-2.c
ordered-3.c
ordered-5.c
parallel-1.c
parloops-exit-first-loop-alt-2.c
parloops-exit-first-loop-alt-3.c
parloops-exit-first-loop-alt-4.c
parloops-exit-first-loop-alt-5.c
parloops-exit-first-loop-alt-6.c
parloops-exit-first-loop-alt-7.c
parloops-exit-first-loop-alt.c
pr24455-1.c
pr24455.c
pr26171.c
pr26943-1.c
pr26943-2.c
pr26943-3.c
pr26943-4.c
pr29947-1.c
pr29947-2.c
pr30494.c
pr32362-1.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
pr32362-2.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
pr32362-3.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
pr32468.c
pr33880.c
pr34513.c
pr35130.c
pr35196.c
pr35549.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
pr35625.c
pr36802-1.c
pr36802-2.c
pr36802-3.c
pr38650.c
pr39154.c
pr39591-1.c
pr39591-2.c
pr39591-3.c
pr42029.c
pr42942.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
pr43893.c
pr46032-2.c
pr46032.c
pr46193.c
pr46886.c
pr48591.c
pr49897-1.c
pr49897-2.c
pr49898-1.c
pr49898-2.c
pr52547.c
pr58392.c
pr58756.c
pr61200.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
pr64734.c
pr66133.c
pr66714.c
pr68960.c
pr69110.c
pr69805.c
pr70680-1.c
pr70680-2.c
pr79940.c
pr80394.c
pr80809-1.c
pr80809-2.c
pr80809-3.c
pr80853.c
pr81687-1.c
pr81687-2.c
pr86416-1.c
pr86416-2.c
pr86660.c
pr89002.c
pr90779.c
pr90811.c
pr93566.c
pr95620.c x86-64: Define ASM_OUTPUT_ALIGNED_DECL_LOCAL 2020-07-18 08:51:54 -07:00
priority.c
private-1.c
reduction-1.c
reduction-2.c
reduction-3.c
reduction-4.c
reduction-5.c
reduction-6.c
reduction-7.c
reduction-8.c
reduction-9.c
reduction-10.c
reduction-11.c
reduction-12.c
reduction-13.c
reduction-14.c
reduction-15.c
scan-1.c
scan-2.c
scan-3.c
scan-4.c
scan-5.c
scan-6.c
scan-7.c
scan-8.c
scan-9.c
scan-10.c
scan-11.c
scan-12.c
scan-13.c
scan-14.c
scan-15.c
scan-16.c
scan-17.c
scan-18.c
scan-19.c
scan-20.c
scan-21.c
scan-22.c
sections-1.c
sections-2.c
shared-1.c
shared-2.c
shared-3.c
simd-1.c
simd-2.c
simd-3.c
simd-4.c
simd-5.c
simd-6.c
simd-7.c
simd-8.c
simd-9.c
simd-10.c
simd-11.c
simd-12.c
simd-13.c
single-1.c
single-2.c
sort-1.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
static-chunk-size-one.c
switch-conversion-2.c
switch-conversion.c
target-3.c
target-4.c
target-5.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
target-6.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
target-7.c
target-8.c
target-9.c
target-11.c
target-12.c
target-14.c
target-15.c
target-16.c
target-17.c
target-18.c
target-19.c
target-20.c
target-21.c
target-22.c
target-23.c
target-24.c
target-25.c
target-26.c
target-27.c
target-28.c
target-29.c
target-30.c
target-31.c
target-32.c xfail and improve some failing libgomp tests [PR81690] 2020-10-28 10:30:41 +01:00
target-33.c
target-34.c
target-35.c
target-36.c
target-37.c
target-38.c
target-39.c
target-40.c openmp: Change omp_get_initial_device () to match OpenMP 5.1 requirements 2020-10-22 09:31:01 +02:00
target-41.c openmp: Add test for OMP_TARGET_OFFLOAD=mandatory for cases where it must not fail 2020-10-22 09:36:18 +02:00
target-42.c openmp: Implicitly discover declare target for variants of declare variant calls 2020-10-28 10:36:31 +01:00
target-critical-1.c
target-link-1.c
target-print-1.c
target-teams-1.c
task-1.c
task-2.c
task-3.c
task-4.c
task-5.c
task-6.c openmp: Don't optimize shared to firstprivate on task with depend clause 2020-12-18 21:43:20 +01:00
task-reduction-1.c
task-reduction-2.c
task-reduction-3.c
teams-1.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
teams-2.c
teams-3.c openmp: Handle reduction clauses on host teams construct [PR96459] 2020-08-05 10:40:10 +02:00
thread-limit-1.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
thread-limit-2.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
thread-limit-3.c
thread-limit-4.c openmp: Mark deprecated symbols in OpenMP 5.0 2020-11-05 10:32:56 -08:00
thread-limit-5.c
udr-2.c
udr-3.c
uns-outer-4.c
usleep.h testsuite/libgomp.c/usleep.h: Use sleep-loop also for GCN 2020-11-18 14:11:27 +01:00
vla-1.c