]> git.ipfire.org Git - thirdparty/gcc.git/commit
[OpenACC privatization] Largely extend diagnostics and corresponding testsuite covera...
authorThomas Schwinge <thomas@codesourcery.com>
Thu, 20 May 2021 14:11:37 +0000 (16:11 +0200)
committerThomas Schwinge <thomas@codesourcery.com>
Fri, 21 May 2021 18:09:59 +0000 (20:09 +0200)
commit11b8286a83289f5b54e813f14ff56d730c3f3185
treece58a5ebd24e4a620cd89c5d531a005205802372
parentd42c10563e23d846b61c9c4a4abe75da70f7838d
[OpenACC privatization] Largely extend diagnostics and corresponding testsuite coverage [PR90115]

gcc/
PR middle-end/90115
* flag-types.h (enum openacc_privatization): New.
* params.opt (-param=openacc-privatization): New.
* doc/invoke.texi (openacc-privatization): Document it.
* omp-general.h (get_openacc_privatization_dump_flags): New
function.
* omp-low.c (oacc_privatization_candidate_p): Add diagnostics.
* omp-offload.c (execute_oacc_device_lower)
<IFN_UNIQUE_OACC_PRIVATE>: Re-work diagnostics.
* target.def (goacc.adjust_private_decl): Add 'location_t'
parameter.
* doc/tm.texi: Regenerate.
* config/gcn/gcn-protos.h (gcn_goacc_adjust_private_decl): Adjust.
* config/gcn/gcn-tree.c (gcn_goacc_adjust_private_decl): Likewise.
* config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl):
Likewise.  Preserve it for...
(nvptx_goacc_expand_var_decl): ... use here.
gcc/testsuite/
PR middle-end/90115
* c-c++-common/goacc/privatization-1-compute-loop.c: New file.
* c-c++-common/goacc/privatization-1-compute.c: Likewise.
* c-c++-common/goacc/privatization-1-routine_gang-loop.c:
Likewise.
* c-c++-common/goacc/privatization-1-routine_gang.c: Likewise.
* gfortran.dg/goacc/privatization-1-compute-loop.f90: Likewise.
* gfortran.dg/goacc/privatization-1-compute.f90: Likewise.
* gfortran.dg/goacc/privatization-1-routine_gang-loop.f90:
Likewise.
* gfortran.dg/goacc/privatization-1-routine_gang.f90: Likewise.
* c-c++-common/goacc-gomp/nesting-1.c: Update.
* c-c++-common/goacc/private-reduction-1.c: Likewise.
* gfortran.dg/goacc/private-3.f95: Likewise.
libgomp/
PR middle-end/90115
* testsuite/libgomp.oacc-fortran/private-atomic-1-vector.f90: New
file.
* testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Update.
* testsuite/libgomp.oacc-c-c++-common/host_data-7.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-3.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-4.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-5.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-3.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-4.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-5.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-6.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-3.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-4.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-5.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-6.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-7.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-gwv-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/private-atomic-1-gang.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/private-atomic-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/private-variables.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/routine-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/static-variable-1.c:
Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
* testsuite/libgomp.oacc-fortran/declare-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/host_data-5.F90: Likewise.
* testsuite/libgomp.oacc-fortran/if-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-1.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-2.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-3.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-6.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-1.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-2.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-1.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-2.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-3.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-4.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-5.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-6.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-7.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/optional-private.f90: Likewise.
* testsuite/libgomp.oacc-fortran/parallel-dims.f90: Likewise.
* testsuite/libgomp.oacc-fortran/private-atomic-1-gang.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/private-atomic-1-worker.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/private-variables.f90: Likewise.
* testsuite/libgomp.oacc-fortran/privatized-ref-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-7.f90: Likewise.
92 files changed:
gcc/config/gcn/gcn-protos.h
gcc/config/gcn/gcn-tree.c
gcc/config/nvptx/nvptx.c
gcc/doc/invoke.texi
gcc/doc/tm.texi
gcc/flag-types.h
gcc/omp-general.h
gcc/omp-low.c
gcc/omp-offload.c
gcc/params.opt
gcc/target.def
gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c
gcc/testsuite/c-c++-common/goacc/private-reduction-1.c
gcc/testsuite/c-c++-common/goacc/privatization-1-compute-loop.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/goacc/privatization-1-compute.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/goacc/privatization-1-routine_gang-loop.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/goacc/privatization-1-routine_gang.c [new file with mode: 0644]
gcc/testsuite/gfortran.dg/goacc/private-3.f95
gcc/testsuite/gfortran.dg/goacc/privatization-1-compute-loop.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/goacc/privatization-1-compute.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/goacc/privatization-1-routine_gang-loop.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/goacc/privatization-1-routine_gang.f90 [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-7.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-2.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-3.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-4.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-5.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-2.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-3.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-4.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-5.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-6.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-2.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-2.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-3.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-4.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-5.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-6.c
libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-7.c
libgomp/testsuite/libgomp.oacc-c-c++-common/loop-g-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/loop-g-2.c
libgomp/testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/loop-gwv-2.c
libgomp/testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c
libgomp/testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c
libgomp/testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/loop-v-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/loop-w-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c
libgomp/testsuite/libgomp.oacc-c-c++-common/private-atomic-1-gang.c
libgomp/testsuite/libgomp.oacc-c-c++-common/private-atomic-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/private-variables.c
libgomp/testsuite/libgomp.oacc-c-c++-common/routine-4.c
libgomp/testsuite/libgomp.oacc-c-c++-common/static-variable-1.c
libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90
libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f
libgomp/testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f
libgomp/testsuite/libgomp.oacc-fortran/declare-1.f90
libgomp/testsuite/libgomp.oacc-fortran/host_data-5.F90
libgomp/testsuite/libgomp.oacc-fortran/if-1.f90
libgomp/testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-1.f90
libgomp/testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-2.f90
libgomp/testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-3.f90
libgomp/testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-6.f90
libgomp/testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-1.f90
libgomp/testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-2.f90
libgomp/testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-1.f90
libgomp/testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-2.f90
libgomp/testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-3.f90
libgomp/testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-4.f90
libgomp/testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-5.f90
libgomp/testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-6.f90
libgomp/testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-7.f90
libgomp/testsuite/libgomp.oacc-fortran/optional-private.f90
libgomp/testsuite/libgomp.oacc-fortran/parallel-dims.f90
libgomp/testsuite/libgomp.oacc-fortran/private-atomic-1-gang.f90
libgomp/testsuite/libgomp.oacc-fortran/private-atomic-1-vector.f90 [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-fortran/private-atomic-1-worker.f90
libgomp/testsuite/libgomp.oacc-fortran/private-variables.f90
libgomp/testsuite/libgomp.oacc-fortran/privatized-ref-2.f90
libgomp/testsuite/libgomp.oacc-fortran/routine-7.f90