gcc/libgomp/testsuite/libgomp.oacc-c-c++-common
Gergö Barany e898ce7997 Decompose OpenACC 'kernels' constructs into parts, a sequence of compute constructs
Not yet enabled by default: for now, the current mode of OpenACC 'kernels'
constructs handling still remains '-fopenacc-kernels=parloops', but that is to
change later.

	gcc/
	* omp-oacc-kernels-decompose.cc: New.
	* Makefile.in (OBJS): Add it.
	* passes.def: Instantiate it.
	* tree-pass.h (make_pass_omp_oacc_kernels_decompose): Declare.
	* flag-types.h (enum openacc_kernels): Add.
	* doc/invoke.texi (-fopenacc-kernels): Document.
	* gimple.h (enum gf_mask): Add
	'GF_OMP_TARGET_KIND_OACC_PARALLEL_KERNELS_PARALLELIZED',
	'GF_OMP_TARGET_KIND_OACC_PARALLEL_KERNELS_GANG_SINGLE',
	'GF_OMP_TARGET_KIND_OACC_DATA_KERNELS'.
	(is_gimple_omp_oacc, is_gimple_omp_offloaded): Handle these.
	* gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
	* omp-expand.c (expand_omp_target, build_omp_regions_1)
	(omp_make_gimple_edges): Likewise.
	* omp-low.c (scan_sharing_clauses, scan_omp_for)
	(check_omp_nesting_restrictions, lower_oacc_reductions)
	(lower_oacc_head_mark, lower_omp_target): Likewise.
	* omp-offload.c (execute_oacc_device_lower): Likewise.
	gcc/c-family/
	* c.opt (fopenacc-kernels): Add.
	gcc/fortran/
	* lang.opt (fopenacc-kernels): Add.
	gcc/testsuite/
	* c-c++-common/goacc/kernels-decompose-1.c: New.
	* c-c++-common/goacc/kernels-decompose-2.c: New.
	* c-c++-common/goacc/kernels-decompose-ice-1.c: New.
	* c-c++-common/goacc/kernels-decompose-ice-2.c: New.
	* gfortran.dg/goacc/kernels-decompose-1.f95: New.
	* gfortran.dg/goacc/kernels-decompose-2.f95: New.
	* c-c++-common/goacc/if-clause-2.c: Adjust.
	* gfortran.dg/goacc/kernels-tree.f95: Likewise.
	libgomp/
	* testsuite/libgomp.oacc-c-c++-common/declare-vla-kernels-decompose-ice-1.c:
	New.
	* testsuite/libgomp.oacc-c-c++-common/declare-vla-kernels-decompose.c:
	Likewise.
	* testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c:
	Likewise.
	* testsuite/libgomp.oacc-c-c++-common/declare-vla.c: Adjust.
	* testsuite/libgomp.oacc-fortran/pr94358-1.f90: Likewise.

Co-authored-by: Thomas Schwinge <thomas@codesourcery.com>
2020-11-13 22:58:57 +01:00
..
abort-1.c
abort-2.c
abort-3.c
abort-4.c
abort-5.c
acc_free-pr92503-1.c
acc_free-pr92503-2.c
acc_free-pr92503-3-2.c
acc_free-pr92503-3.c
acc_free-pr92503-4-2.c
acc_free-pr92503-4.c
acc_get_property-aux.c
acc_get_property-gcn.c
acc_get_property-host.c
acc_get_property-nvptx.c
acc_get_property.c
acc_map_data-device_already-1.c
acc_map_data-device_already-2.c
acc_map_data-device_already-3.c
acc_map_data-host_already-1.c
acc_map_data-host_already-2.c
acc_map_data-host_already-3.c
acc_on_device-1.c
acc_prof-dispatch-1.c
acc_prof-init-1.c
acc_prof-init-2.c libgomp: Fix hang when profiling OpenACC programs with CUDA 9.0 nvprof 2020-07-14 10:31:35 -07:00
acc_prof-kernels-1.c
acc_prof-parallel-1.c
acc_prof-valid_bytes-1.c
acc_prof-version-1.c
acc_set_cuda_stream-1.c
acc_unmap_data-pr92840-1.c
acc_unmap_data-pr92840-2.c
acc_unmap_data-pr92840-3.c
acc-on-device-2.c
acc-on-device.c
async_queue-1.c
asyncwait-1.c
asyncwait-nop-1.c
atomic_capture-1.c
atomic_capture-2.c openacc: Fix atomic_capture-2.c iteration-ordering issues 2020-09-08 13:26:42 -07:00
atomic_rw-1.c
atomic_update-1.c
broadcast-1.c
cache-1.c
clauses-1.c
clauses-2.c
collapse-1.c
collapse-2.c
collapse-3.c
collapse-4.c
combined-directives-1.c
combined-reduction.c
context-1.c
context-2.c
context-3.c
context-4.c
crash-1.c
data-1.c
data-2-lib.c
data-2.c
data-3.c
data-clauses-kernels-ipa-pta.c
data-clauses-kernels.c
data-clauses-parallel-ipa-pta.c
data-clauses-parallel.c
data-clauses.h
data-firstprivate-1.c
declare-1.c
declare-2.c
declare-3.c
declare-4.c
declare-5.c
declare-vla-kernels-decompose-ice-1.c Decompose OpenACC 'kernels' constructs into parts, a sequence of compute constructs 2020-11-13 22:58:57 +01:00
declare-vla-kernels-decompose.c Decompose OpenACC 'kernels' constructs into parts, a sequence of compute constructs 2020-11-13 22:58:57 +01:00
declare-vla.c Decompose OpenACC 'kernels' constructs into parts, a sequence of compute constructs 2020-11-13 22:58:57 +01:00
deep-copy-1.c
deep-copy-2.c
deep-copy-3.c
deep-copy-4.c
deep-copy-5.c
deep-copy-6.c
deep-copy-7.c
deep-copy-8.c
deep-copy-9.c
deep-copy-10.c
deep-copy-11.c
deep-copy-14.c
default-1.c
deviceptr-1.c
enter_exit-lib.c
enter-data.c
f-asyncwait-1.c
f-asyncwait-2.c
f-asyncwait-3.c
firstprivate-1.c
firstprivate-mappings-1.c
function-not-offloaded.c
gang-reduction-var-assignment.c
gang-static-1.c
gang-static-2.c
gomp-debug-env.c
host_data-1.c
host_data-2.c
host_data-4.c
host_data-5.c
host_data-6.c
host_data-7.c
if-1.c
insufficient-resources.c
kernels-alias-ipa-pta-2.c
kernels-alias-ipa-pta-3.c
kernels-alias-ipa-pta.c
kernels-decompose-1.c Decompose OpenACC 'kernels' constructs into parts, a sequence of compute constructs 2020-11-13 22:58:57 +01:00
kernels-empty.c
kernels-loop-2.c
kernels-loop-3.c
kernels-loop-and-seq-2.c
kernels-loop-and-seq-3.c
kernels-loop-and-seq-4.c
kernels-loop-and-seq-5.c
kernels-loop-and-seq-6.c
kernels-loop-and-seq.c
kernels-loop-clauses.c
kernels-loop-collapse.c
kernels-loop-data-2.c
kernels-loop-data-enter-exit-2.c
kernels-loop-data-enter-exit.c
kernels-loop-data-update.c
kernels-loop-data.c
kernels-loop-g.c
kernels-loop-mod-not-zero.c
kernels-loop-n.c
kernels-loop-nest.c
kernels-loop.c
kernels-parallel-loop-data-enter-exit.c
kernels-private-vars-local-worker-1.c
kernels-private-vars-local-worker-2.c
kernels-private-vars-local-worker-3.c
kernels-private-vars-local-worker-4.c
kernels-private-vars-local-worker-5.c
kernels-private-vars-loop-gang-1.c
kernels-private-vars-loop-gang-2.c
kernels-private-vars-loop-gang-3.c
kernels-private-vars-loop-gang-4.c
kernels-private-vars-loop-gang-5.c
kernels-private-vars-loop-gang-6.c
kernels-private-vars-loop-vector-1.c
kernels-private-vars-loop-vector-2.c
kernels-private-vars-loop-worker-1.c
kernels-private-vars-loop-worker-2.c
kernels-private-vars-loop-worker-3.c
kernels-private-vars-loop-worker-4.c
kernels-private-vars-loop-worker-5.c
kernels-private-vars-loop-worker-6.c
kernels-private-vars-loop-worker-7.c
kernels-reduction-1.c
kernels-reduction.c
lib-1.c
lib-2.c
lib-3.c
lib-4.c
lib-5.c
lib-6.c
lib-7.c
lib-8.c
lib-9.c
lib-10.c
lib-11.c
lib-12.c
lib-13.c
lib-14.c
lib-15.c
lib-16.c
lib-19.c
lib-20.c
lib-23.c
lib-24.c
lib-25.c
lib-26.c
lib-27.c
lib-31.c
lib-32.c
lib-33.c
lib-34.c
lib-35.c
lib-36.c
lib-37.c
lib-39.c
lib-40.c
lib-41.c
lib-42.c
lib-44.c
lib-45.c
lib-46.c
lib-48.c
lib-49.c
lib-51.c
lib-52.c
lib-53.c
lib-54.c
lib-55.c
lib-56.c
lib-57.c
lib-58.c
lib-59.c
lib-60.c
lib-61.c
lib-62.c
lib-63.c
lib-64.c
lib-65.c
lib-66.c
lib-67.c
lib-68.c
lib-69.c
lib-70.c
lib-72.c
lib-73.c
lib-74.c
lib-75.c
lib-76.c
lib-78.c
lib-79.c
lib-81.c
lib-82.c
lib-83.c
lib-84.c
lib-85.c
lib-86.c
lib-87.c
lib-88.c
lib-89.c
lib-90.c
lib-91.c
lib-92.c
lib-94.c
lib-95.c
loop-auto-1.c
loop-default-runtime.c
loop-default.h
loop-dim-default.c
loop-g-1.c
loop-g-2.c
loop-gwv-1.c
loop-red-g-1.c
loop-red-gwv-1.c
loop-red-v-1.c
loop-red-v-2.c
loop-red-w-1.c
loop-red-w-2.c
loop-red-wv-1.c
loop-v-1.c
loop-w-1.c
loop-wv-1.c
map-data-1.c
mapping-1.c
mdc-refcount-1.c openacc: Deep copy attach/detach should not affect reference counts 2020-07-27 09:16:57 -07:00
mdc-refcount-2.c openacc: Deep copy attach/detach should not affect reference counts 2020-07-27 09:16:57 -07:00
mdc-refcount-3.c openacc: Deep copy attach/detach should not affect reference counts 2020-07-27 09:16:57 -07:00
mode-transitions.c
nested-1.c
nested-2.c
no_create-1.c
no_create-2.c
no_create-3.c
no_create-4.c
no_create-5.c
nvptx-merged-loop.c
nvptx-sese-1.c
offset-1.c
par-loop-comb-reduction-1.c
par-loop-comb-reduction-2.c
par-loop-comb-reduction-3.c
par-loop-comb-reduction-4.c
par-reduction-1.c
par-reduction-2.c
parallel-dims.c
parallel-empty.c
parallel-loop-1.c
parallel-loop-1.h
parallel-loop-2.h
parallel-reduction.c
pointer-align-1.c
pr70289.c
pr70373.c
pr70688.c
pr83046.c
pr83589.c
pr83920.c
pr84217.c
pr84955-1.c
pr84955.c
pr85381-2.c
pr85381-3.c
pr85381-4.c
pr85381-5.c
pr85381.c
pr85422.c
pr85486-2.c Simplify and enhance 'libgomp.oacc-c-c++-common/pr85486*.c' [PR85486] 2020-11-02 14:20:01 +01:00
pr85486-3.c Simplify and enhance 'libgomp.oacc-c-c++-common/pr85486*.c' [PR85486] 2020-11-02 14:20:01 +01:00
pr85486.c Simplify and enhance 'libgomp.oacc-c-c++-common/pr85486*.c' [PR85486] 2020-11-02 14:20:01 +01:00
pr85782.c
pr87835.c
pr88288.c
pr88941.c
pr88946.c
pr89376.c
pr90009.c
pr92726-1.c
pr92843-1.c openacc: Adjust dynamic reference count semantics 2020-07-10 08:07:12 -07:00
pr92848-1-d-a.c
pr92848-1-d-p.c
pr92848-1-r-a.c
pr92848-1-r-p.c
pr92854-1.c
pr92877-1.c
pr92970-1.c
pr92984-1.c
pr95270-1.c openacc: Set bias to zero for explicit attach/detach clauses in C and C++ 2020-07-09 15:17:52 -07:00
pr95270-2.c openacc: Set bias to zero for explicit attach/detach clauses in C and C++ 2020-07-09 15:17:52 -07:00
present-1.c
present-2.c
private-variables.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-cplx-dbl.c
reduction-cplx-flt.c
reduction-dbl.c
reduction-flt.c
reduction-initial-1.c
reduction.h
refcounting-1.c openacc: Adjust dynamic reference count semantics 2020-07-10 08:07:12 -07:00
refcounting-2.c openacc: Adjust dynamic reference count semantics 2020-07-10 08:07:12 -07:00
routine-1.c
routine-4.c
routine-g-1.c
routine-gwv-1.c
routine-v-1.c
routine-w-1.c
routine-wv-1.c
routine-wv-2.c
struct-1.c
struct-3-1-1.c openacc: Adjust dynamic reference count semantics 2020-07-10 08:07:12 -07:00
struct-copyout-1.c
struct-copyout-2.c
structured-detach-underflow.c openacc: Remove unnecessary detach finalization 2020-07-23 12:50:07 -07:00
structured-dynamic-lifetimes-1-lib.c
structured-dynamic-lifetimes-1.c
structured-dynamic-lifetimes-2-lib.c
structured-dynamic-lifetimes-2.c
structured-dynamic-lifetimes-3-lib.c
structured-dynamic-lifetimes-3.c
structured-dynamic-lifetimes-4-lib.c
structured-dynamic-lifetimes-4.c openacc: Adjust dynamic reference count semantics 2020-07-10 08:07:12 -07:00
structured-dynamic-lifetimes-5-lib.c
structured-dynamic-lifetimes-5.c
structured-dynamic-lifetimes-6-lib.c
structured-dynamic-lifetimes-6.c
structured-dynamic-lifetimes-7-lib.c
structured-dynamic-lifetimes-7.c
structured-dynamic-lifetimes-8-lib.c
structured-dynamic-lifetimes-8.c
subr.h
subr.ptx
subset-subarray-mappings-1-d-a.c
subset-subarray-mappings-1-d-p.c
subset-subarray-mappings-1-r-a.c
subset-subarray-mappings-1-r-p.c
subset-subarray-mappings-2.c
switch-conversion-2.c
switch-conversion.c
tile-1.c
timer.h
unmap-infinity-1.c
update-1.c
variable-not-offloaded.c
vector-length-64-1.c
vector-length-64-2.c
vector-length-64-3.c
vector-length-128-1.c
vector-length-128-2.c
vector-length-128-3.c
vector-length-128-4.c
vector-length-128-5.c
vector-length-128-6.c
vector-length-128-7.c
vector-length-128-10.c
vector-loop.c
vector-type-1.c
vprop-2.c
vprop.c
vred2d-128.c
zero_length_subarrays.c