Hi,
this patch series implements the re-work of the OpenACC "kernels"
implementation that has been announced at the GNU Tools Track of this
year's Linux Plumbers Conference; see
https://linuxplumbersconf.org/event/11/contributions/998/. Versions
of the patches have also been committed to the devel/omp/gcc-11 branch
recently.
The patch series contains middle-end changes that modify the "kernels"
loop handling to use Graphite for dependence analysis of loops in
"kernels" regions, as well as new optimizations and adjustments to
existing optimizations to support this analysis. A central step is
contained in the commit titled "openacc: Use Graphite for dependence
analysis in \"kernels\" regions" whose commit message also contains
further explanations. There are also front end changes (cf. the
patches by Sandra Loosemore) that prepare the loops in "kernels"
regions for the middle-end processing and which lift various
restrictions on "kernels" regions. I have included some dependences
(the patches by Julian Brown) from the devel/omp/gcc-11 branch which
will be re-submitted independently for review.
I have bootstrapped the compiler on x86_64-linux-gnu and performed
comprehensive testing on a powerpc64le-linux-gnu target. The patches
should apply cleanly on commit r12-4865 of the master branch.
I am aware that we cannot incorporate those patches into GCC at the
current development stage. I hope that we can discuss some of the
changes before they can be considered for inclusion in GCC during the
next stage 1.
Best regards,
Frederik
Andrew Stubbs (2):
openacc: Add data optimization pass
openacc: Add runtime a lias checking for OpenACC kernels
Frederik Harwath (20):
Fortran: Delinearize array accesses
openacc: Move pass_oacc_device_lower after pass_graphite
graphite: Extend SCoP detection dump output
graphite: Rename isl_id_for_ssa_name
graphite: Fix minor mistakes in comments
Move compute_alias_check_pairs to tree-data-ref.c
graphite: Add runtime alias checking
openacc: Use Graphite for dependence analysis in "kernels" regions
openacc: Add "can_be_parallel" flag info to "graph" dumps
openacc: Remove unused partitioning in "kernels" regions
Add function for printing a single OMP_CLAUSE
openacc: Warn about "independent" "kernels" loops with
data-dependences
openacc: Handle internal function calls in pass_lim
openacc: Disable pass_pre on outlined functions analyzed by Graphite
graphite: Tune parameters for OpenACC use
graphite: Adjust scop loop-nest choice
graphite: Accept loops without data references
openacc: Enable reduction variable localization for "kernels"
openacc: Check type for references in reduction lowering
openacc: Adjust testsuite to new "kernels" handling
Julian Brown (4):
Reference reduction localization
Fix tree check failure with reduction localization
Use more appropriate var in localize_reductions call
Handle references in OpenACC "private" clauses
Sandra Loosemore (12):
Kernels loops annotation: C and C++.
Add -fno-openacc-kernels-annotate-loops option to more testcases.
Kernels loops annotation: Fortran.
Additional Fortran testsuite fixes for kernels loops annotation pass.
Fix bug in processing of array dimensions in data clauses.
Add a "combined" flag for "acc kernels loop" etc directives.
Annotate inner loops in "acc kernels loop" directives (C/C++).
Annotate inner loops in "acc kernels loop" directives (Fortran).
Permit calls to builtins and intrinsics in kernels loops.
Fix patterns in Fortran tests for kernels loop annotation.
Clean up loop variable extraction in OpenACC kernels loop annotation.
Relax some restrictions on the loop bound in kernels loop annotation.
Tobias Burnus (2):
Fix for is_gimple_reg vars to 'data kernels'
openacc: fix privatization of by-reference arrays
gcc/Makefile.in | 2 +
gcc/c-family/c-common.h | 1 +
gcc/c-family/c-omp.c | 915 +++++++++++++++--
gcc/c-family/c.opt | 8 +
gcc/c/c-decl.c | 28 +
gcc/c/c-parser.c | 3 +
gcc/cfgloop.c | 1 +
gcc/cfgloop.h | 6 +
gcc/cfgloopmanip.c | 1 +
gcc/common.opt | 9 +
gcc/config/nvptx/nvptx.c | 7 +
gcc/cp/decl.c | 44 +
gcc/cp/parser.c | 3 +
gcc/cp/semantics.c | 9 +
gcc/doc/gimple.texi | 2 +
gcc/doc/invoke.texi | 52 +-
gcc/doc/passes.texi | 6 +-
gcc/expr.c | 1 +
gcc/flag-types.h | 1 +
gcc/fortran/gfortran.h | 1 +
gcc/fortran/lang.opt | 12 +
gcc/fortran/openmp.c | 415 ++++++++
gcc/fortran/parse.c | 9 +
gcc/fortran/trans-array.c | 321 ++++--
gcc/fortran/trans-openmp.c | 34 +-
gcc/gimple-loop-interchange.cc | 2 +-
gcc/gimple-pretty-print.c | 3 +
gcc/gimple-walk.c | 15 +-
gcc/gimple-walk.h | 6 +
gcc/gimple.h | 5 +
gcc/gimplify.c | 117 +++
gcc/graph.c | 35 +-
gcc/graphite-dependences.c | 220 ++--
gcc/graphite-isl-ast-to-gimple.c | 271 ++++-
gcc/graphite-oacc.c | 688 +++++++++++++
gcc/graphite-oacc.h | 55 +
gcc/graphite-optimize-isl.c | 42 +-
gcc/graphite-poly.c | 41 +-
gcc/graphite-scop-detection.c | 651 ++++++++++--
gcc/graphite-sese-to-poly.c | 90 +-
gcc/graphite.c | 120 ++-
gcc/graphite.h | 40 +-
gcc/internal-fn.c | 4 +
gcc/internal-fn.h | 4 +-
gcc/omp-data-optimize.cc | 951 ++++++++++++++++++
gcc/omp-expand.c | 102 +-
gcc/omp-general.c | 23 +-
gcc/omp-general.h | 1 +
gcc/omp-low.c | 439 ++++++--
gcc/omp-oacc-kernels-decompose.cc | 154 ++-
gcc/omp-oacc-neuter-broadcast.cc | 2 +
gcc/omp-offload.c | 830 ++++++++++++---
gcc/omp-offload.h | 2 +
gcc/params.opt | 7 +-
gcc/passes.c | 42 +
gcc/passes.def | 47 +-
gcc/sese.c | 25 +-
gcc/sese.h | 19 +
.../c-c++-common/goacc-gomp/nesting-1.c | 10 +-
gcc/testsuite/c-c++-common/goacc/cache-3-1.c | 2 +-
.../goacc/classify-kernels-unparallelized.c | 35 +-
.../c-c++-common/goacc/classify-kernels.c | 24 +-
.../c-c++-common/goacc/classify-parallel.c | 8 +-
.../goacc/classify-routine-nohost.c | 20 +-
.../c-c++-common/goacc/classify-routine.c | 22 +-
.../c-c++-common/goacc/classify-serial.c | 8 +-
.../c-c++-common/goacc/combined-directives.c | 2 +-
.../device-lowering-debug-optimization.c | 29 +
.../goacc/device-lowering-no-loops.c | 17 +
.../goacc/device-lowering-no-optimization.c | 30 +
.../c-c++-common/goacc/if-clause-2.c | 2 +-
gcc/testsuite/c-c++-common/goacc/kernels-1.c | 17 +-
.../kernels-counter-var-redundant-load.c | 19 +-
.../kernels-counter-vars-function-scope.c | 10 +-
.../c-c++-common/goacc/kernels-decompose-1.c | 31 +-
.../c-c++-common/goacc/kernels-decompose-2.c | 57 +-
.../goacc/kernels-decompose-ice-1.c | 7 +-
.../goacc/kernels-decompose-ice-2.c | 3 +-
.../goacc/kernels-double-reduction-n.c | 6 +-
.../goacc/kernels-double-reduction.c | 5 +-
.../c-c++-common/goacc/kernels-loop-2.c | 19 +-
.../c-c++-common/goacc/kernels-loop-3.c | 3 +
.../goacc/kernels-loop-annotation-1.c | 26 +
.../goacc/kernels-loop-annotation-10.c | 32 +
.../goacc/kernels-loop-annotation-11.c | 27 +
.../goacc/kernels-loop-annotation-12.c | 28 +
.../goacc/kernels-loop-annotation-13.c | 27 +
.../goacc/kernels-loop-annotation-14.c | 22 +
.../goacc/kernels-loop-annotation-15.c | 22 +
.../goacc/kernels-loop-annotation-16.c | 26 +
.../goacc/kernels-loop-annotation-17.c | 26 +
.../goacc/kernels-loop-annotation-18.c | 18 +
.../goacc/kernels-loop-annotation-19.c | 19 +
.../goacc/kernels-loop-annotation-2.c | 21 +
.../goacc/kernels-loop-annotation-20.c | 23 +
.../goacc/kernels-loop-annotation-21.c | 42 +
.../goacc/kernels-loop-annotation-22.c | 41 +
.../goacc/kernels-loop-annotation-3.c | 24 +
.../goacc/kernels-loop-annotation-4.c | 34 +
.../goacc/kernels-loop-annotation-5.c | 27 +
.../goacc/kernels-loop-annotation-6.c | 27 +
.../goacc/kernels-loop-annotation-7.c | 26 +
.../goacc/kernels-loop-annotation-8.c | 27 +
.../goacc/kernels-loop-annotation-9.c | 26 +
.../c-c++-common/goacc/kernels-loop-data-2.c | 17 +-
.../goacc/kernels-loop-data-enter-exit-2.c | 16 +-
.../goacc/kernels-loop-data-enter-exit.c | 17 +-
.../goacc/kernels-loop-data-update.c | 13 +-
.../c-c++-common/goacc/kernels-loop-data.c | 12 +-
.../c-c++-common/goacc/kernels-loop-g.c | 14 +-
.../goacc/kernels-loop-mod-not-zero.c | 10 +-
.../c-c++-common/goacc/kernels-loop-n.c | 10 +-
.../c-c++-common/goacc/kernels-loop-nest.c | 12 +-
.../c-c++-common/goacc/kernels-loop.c | 10 +-
.../goacc/kernels-one-counter-var.c | 12 +-
.../kernels-parallel-loop-data-enter-exit.c | 17 +-
.../c-c++-common/goacc/kernels-reduction.c | 10 +-
.../c-c++-common/goacc/loop-2-kernels.c | 6 +-
.../c-c++-common/goacc/loop-auto-1.c | 127 +--
.../c-c++-common/goacc/loop-auto-2.c | 37 +-
.../c-c++-common/goacc/loop-auto-reductions.c | 22 +
.../goacc/nested-reductions-2-parallel.c | 138 +++
.../goacc/note-parallelism-kernels-loops-1.c | 61 ++
.../note-parallelism-kernels-loops-parloops.c | 53 +
.../c-c++-common/goacc/omp_data_optimize-1.c | 677 +++++++++++++
.../c-c++-common/goacc/routine-nohost-1.c | 8 +-
gcc/testsuite/c-c++-common/unroll-1.c | 8 +-
gcc/testsuite/c-c++-common/unroll-4.c | 4 +-
.../g++.dg/goacc/omp_data_optimize-1.C | 169 ++++
gcc/testsuite/g++.dg/goacc/template.C | 18 +-
.../gcc.dg/goacc/graphite-parameter-1.c | 21 +
.../gcc.dg/goacc/graphite-parameter-2.c | 23 +
.../gcc.dg/goacc/loop-processing-1.c | 8 +-
.../gcc.dg/goacc/nested-function-1.c | 3 +-
gcc/testsuite/gcc.dg/graphite/alias-1.c | 22 +
gcc/testsuite/gcc.dg/tree-ssa/backprop-1.c | 6 +-
gcc/testsuite/gcc.dg/tree-ssa/backprop-2.c | 4 +-
gcc/testsuite/gcc.dg/tree-ssa/backprop-3.c | 4 +-
gcc/testsuite/gcc.dg/tree-ssa/backprop-4.c | 6 +-
gcc/testsuite/gcc.dg/tree-ssa/backprop-5.c | 4 +-
gcc/testsuite/gcc.dg/tree-ssa/backprop-6.c | 6 +-
gcc/testsuite/gcc.dg/tree-ssa/cunroll-1.c | 6 +-
gcc/testsuite/gcc.dg/tree-ssa/cunroll-3.c | 4 +-
gcc/testsuite/gcc.dg/tree-ssa/cunroll-9.c | 4 +-
gcc/testsuite/gcc.dg/tree-ssa/ldist-17.c | 2 +-
gcc/testsuite/gcc.dg/tree-ssa/loop-38.c | 4 +-
gcc/testsuite/gcc.dg/tree-ssa/loopclosedphi.c | 2 +-
gcc/testsuite/gcc.dg/tree-ssa/pr21463.c | 4 +-
gcc/testsuite/gcc.dg/tree-ssa/pr45427.c | 4 +-
gcc/testsuite/gcc.dg/tree-ssa/pr59597.c | 2 +-
gcc/testsuite/gcc.dg/tree-ssa/pr61743-1.c | 2 +-
gcc/testsuite/gcc.dg/unroll-2.c | 2 +-
gcc/testsuite/gcc.dg/unroll-3.c | 4 +-
gcc/testsuite/gcc.dg/unroll-4.c | 4 +-
gcc/testsuite/gcc.dg/unroll-5.c | 4 +-
gcc/testsuite/gcc.dg/vect/bb-slp-59.c | 2 +-
gcc/testsuite/gcc.dg/vect/vect-profile-1.c | 2 +-
gcc/testsuite/gfortran.dg/assumed_type_2.f90 | 6 +-
.../gfortran.dg/directive_unroll_1.f90 | 2 +-
.../gfortran.dg/directive_unroll_4.f90 | 2 +-
...assify-kernels-unparallelized-parloops.f95 | 44 +
.../goacc/classify-kernels-unparallelized.f95 | 27 +-
.../gfortran.dg/goacc/classify-kernels.f95 | 21 +-
.../gfortran.dg/goacc/classify-parallel.f95 | 6 +-
.../goacc/classify-routine-nohost.f95 | 18 +-
.../gfortran.dg/goacc/classify-routine.f95 | 20 +-
.../gfortran.dg/goacc/classify-serial.f95 | 8 +-
.../gfortran.dg/goacc/combined-directives.f90 | 19 +-
.../gfortran.dg/goacc/common-block-3.f90 | 17 +-
.../gfortran.dg/goacc/gang-static.f95 | 14 +-
.../gfortran.dg/goacc/kernels-conversion.f95 | 52 +
.../gfortran.dg/goacc/kernels-decompose-1.f95 | 186 ++--
.../gfortran.dg/goacc/kernels-decompose-2.f95 | 113 ++-
.../gfortran.dg/goacc/kernels-loop-2.f95 | 10 +-
.../goacc/kernels-loop-annotation-1.f95 | 33 +
.../goacc/kernels-loop-annotation-10.f95 | 32 +
.../goacc/kernels-loop-annotation-11.f95 | 34 +
.../goacc/kernels-loop-annotation-12.f95 | 39 +
.../goacc/kernels-loop-annotation-13.f95 | 38 +
.../goacc/kernels-loop-annotation-14.f95 | 35 +
.../goacc/kernels-loop-annotation-15.f95 | 35 +
.../goacc/kernels-loop-annotation-16.f95 | 34 +
.../goacc/kernels-loop-annotation-18.f95 | 28 +
.../goacc/kernels-loop-annotation-19.f95 | 29 +
.../goacc/kernels-loop-annotation-2.f95 | 32 +
.../goacc/kernels-loop-annotation-20.f95 | 26 +
.../goacc/kernels-loop-annotation-3.f95 | 33 +
.../goacc/kernels-loop-annotation-4.f95 | 34 +
.../goacc/kernels-loop-annotation-5.f95 | 35 +
.../goacc/kernels-loop-annotation-6.f95 | 34 +
.../goacc/kernels-loop-annotation-7.f95 | 48 +
.../goacc/kernels-loop-annotation-8.f95 | 50 +
.../goacc/kernels-loop-annotation-9.f95 | 34 +
.../gfortran.dg/goacc/kernels-loop-data-2.f95 | 10 +-
.../goacc/kernels-loop-data-enter-exit-2.f95 | 12 +-
.../goacc/kernels-loop-data-enter-exit.f95 | 12 +-
.../goacc/kernels-loop-data-update.f95 | 12 +-
.../gfortran.dg/goacc/kernels-loop-data.f95 | 14 +-
.../gfortran.dg/goacc/kernels-loop-inner.f95 | 6 +-
.../gfortran.dg/goacc/kernels-loop-n.f95 | 13 +-
.../gfortran.dg/goacc/kernels-loop.f95 | 9 +-
.../kernels-parallel-loop-data-enter-exit.f95 | 12 +-
.../gfortran.dg/goacc/kernels-reductions.f90 | 37 +
.../gfortran.dg/goacc/kernels-tree.f95 | 2 +-
.../gfortran.dg/goacc/loop-2-kernels.f95 | 6 +-
.../goacc/loop-auto-transfer-2.f90 | 45 +
.../goacc/loop-auto-transfer-3.f90 | 95 ++
.../goacc/loop-auto-transfer-4.f90 | 293 ++++++
.../gfortran.dg/goacc/nested-function-1.f90 | 12 +-
.../goacc/nested-reductions-2-parallel.f90 | 177 ++++
.../gfortran.dg/goacc/omp_data_optimize-1.f90 | 588 +++++++++++
.../goacc/private-explicit-kernels-1.f95 | 20 +-
.../goacc/private-predetermined-kernels-1.f95 | 23 +-
.../goacc/privatization-1-compute-loop.f90 | 3 -
.../goacc/routine-module-mod-1.f90 | 4 +-
.../goacc/routine-multiple-directives-1.f90 | 32 +-
.../gfortran.dg/gomp/affinity-clause-1.f90 | 2 +-
gcc/testsuite/gfortran.dg/graphite/block-2.f | 9 +-
.../gfortran.dg/graphite/block-3.f90 | 2 +-
.../gfortran.dg/graphite/block-4.f90 | 2 +-
gcc/testsuite/gfortran.dg/graphite/id-9.f | 2 +-
.../gfortran.dg/inline_matmul_16.f90 | 2 +
.../gfortran.dg/inline_matmul_24.f90 | 2 +-
gcc/testsuite/gfortran.dg/no_arg_check_2.f90 | 6 +-
gcc/testsuite/gfortran.dg/pr32921.f | 2 +-
gcc/testsuite/gfortran.dg/reassoc_4.f | 2 +-
.../gfortran.dg/vect/fast-math-mgrid-resid.f | 1 +
gcc/tree-chrec.c | 3 +
gcc/tree-core.h | 4 +-
gcc/tree-data-ref.c | 107 +-
gcc/tree-data-ref.h | 3 +
gcc/tree-loop-distribution.c | 87 --
gcc/tree-parloops.c | 18 +-
gcc/tree-pass.h | 3 +
gcc/tree-pretty-print.c | 11 +
gcc/tree-pretty-print.h | 1 +
gcc/tree-scalar-evolution.c | 177 +++-
gcc/tree-scalar-evolution.h | 3 +
gcc/tree-ssa-dce.c | 23 +
gcc/tree-ssa-loop-im.c | 57 +-
gcc/tree-ssa-loop-ivcanon.c | 2 +
gcc/tree-ssa-loop-manip.h | 2 +-
gcc/tree-ssa-loop-niter.c | 6 +
gcc/tree-ssa-loop.c | 110 ++
gcc/tree-ssa-phiprop.c | 2 +
gcc/tree-ssa-pre.c | 17 +
gcc/tree.c | 137 ++-
gcc/tree.h | 7 +
.../libgomp.oacc-c++/privatized-ref-2.C | 64 ++
.../libgomp.oacc-c++/privatized-ref-3.C | 64 ++
.../acc_prof-kernels-1.c | 22 +-
.../declare-vla-kernels-decompose-ice-1.c | 4 -
.../kernels-decompose-1.c | 10 +-
.../kernels-private-vars-local-worker-1.c | 6 +-
.../kernels-private-vars-local-worker-2.c | 6 +-
.../kernels-private-vars-local-worker-3.c | 6 +-
.../kernels-private-vars-local-worker-4.c | 8 +-
.../kernels-private-vars-local-worker-5.c | 6 +-
.../kernels-private-vars-loop-gang-1.c | 4 +-
.../kernels-private-vars-loop-gang-2.c | 4 +-
.../kernels-private-vars-loop-gang-3.c | 4 +-
.../kernels-private-vars-loop-gang-4.c | 15 +-
.../kernels-private-vars-loop-gang-5.c | 10 +-
.../kernels-private-vars-loop-gang-6.c | 4 +-
.../kernels-private-vars-loop-vector-1.c | 6 +-
.../kernels-private-vars-loop-vector-2.c | 6 +-
.../kernels-private-vars-loop-worker-1.c | 8 +-
.../kernels-private-vars-loop-worker-2.c | 6 +-
.../kernels-private-vars-loop-worker-3.c | 6 +-
.../kernels-private-vars-loop-worker-4.c | 6 +-
.../kernels-private-vars-loop-worker-5.c | 9 +-
.../kernels-private-vars-loop-worker-6.c | 6 +-
.../kernels-private-vars-loop-worker-7.c | 6 +-
.../libgomp.oacc-c-c++-common/loop-auto-1.c | 30 +-
.../libgomp.oacc-c-c++-common/parallel-dims.c | 39 +-
.../libgomp.oacc-c-c++-common/pr84955-1.c | 1 -
.../libgomp.oacc-c-c++-common/pr85381-2.c | 8 +-
.../libgomp.oacc-c-c++-common/pr85381-3.c | 8 +-
.../libgomp.oacc-c-c++-common/pr85381-4.c | 4 +-
.../libgomp.oacc-c-c++-common/pr85486-2.c | 4 +-
.../libgomp.oacc-c-c++-common/pr85486-3.c | 4 +-
.../libgomp.oacc-c-c++-common/pr85486.c | 4 +-
.../routine-nohost-1.c | 6 +-
.../runtime-alias-check-1.c | 79 ++
.../runtime-alias-check-2.c | 90 ++
.../vector-length-128-1.c | 5 +-
.../vector-length-128-2.c | 5 +-
.../vector-length-128-3.c | 5 +-
.../vector-length-128-4.c | 5 +-
.../vector-length-128-5.c | 5 +-
.../vector-length-128-6.c | 5 +-
.../vector-length-128-7.c | 5 +-
.../testsuite/libgomp.oacc-fortran/if-1.f90 | 32 +-
.../kernels-acc-loop-reduction-2.f90 | 12 +-
.../kernels-independent.f90 | 1 +
.../libgomp.oacc-fortran/kernels-loop-1.f90 | 1 +
.../kernels-private-vars-loop-gang-1.f90 | 4 +-
.../kernels-private-vars-loop-gang-2.f90 | 4 +-
.../kernels-private-vars-loop-gang-3.f90 | 4 +-
.../kernels-private-vars-loop-gang-6.f90 | 5 +-
.../kernels-private-vars-loop-vector-1.f90 | 4 +-
.../kernels-private-vars-loop-vector-2.f90 | 11 +-
.../kernels-private-vars-loop-worker-1.f90 | 6 +-
.../kernels-private-vars-loop-worker-2.f90 | 4 +-
.../kernels-private-vars-loop-worker-3.f90 | 4 +-
.../kernels-private-vars-loop-worker-4.f90 | 4 +-
.../kernels-private-vars-loop-worker-5.f90 | 7 +-
.../kernels-private-vars-loop-worker-6.f90 | 4 +-
.../kernels-private-vars-loop-worker-7.f90 | 6 +-
.../libgomp.oacc-fortran/optional-private.f90 | 2 -
.../libgomp.oacc-fortran/pr94358-1.f90 | 7 +-
.../libgomp.oacc-fortran/privatized-ref-1.f95 | 71 ++
.../libgomp.oacc-fortran/routine-nohost-1.f90 | 4 +-
313 files changed, 12131 insertions(+), 1729 deletions(-)
create mode 100644 gcc/graphite-oacc.c
create mode 100644 gcc/graphite-oacc.h
create mode 100644 gcc/omp-data-optimize.cc
create mode 100644
gcc/testsuite/c-c++-common/goacc/device-lowering-debug-optimization.c
create mode 100644 gcc/testsuite/c-c++-common/goacc/device-lowering-no-loops.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/device-lowering-no-optimization.c
create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-1.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-10.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-11.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-12.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-13.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-14.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-15.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-16.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-17.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-18.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-19.c
create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-2.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-20.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-21.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-22.c
create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-3.c
create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-4.c
create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-5.c
create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-6.c
create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-7.c
create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-8.c
create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-loop-annotation-9.c
create mode 100644 gcc/testsuite/c-c++-common/goacc/loop-auto-reductions.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/note-parallelism-kernels-loops-1.c
create mode 100644
gcc/testsuite/c-c++-common/goacc/note-parallelism-kernels-loops-parloops.c
create mode 100644 gcc/testsuite/c-c++-common/goacc/omp_data_optimize-1.c
create mode 100644 gcc/testsuite/g++.dg/goacc/omp_data_optimize-1.C
create mode 100644 gcc/testsuite/gcc.dg/goacc/graphite-parameter-1.c
create mode 100644 gcc/testsuite/gcc.dg/goacc/graphite-parameter-2.c
create mode 100644 gcc/testsuite/gcc.dg/graphite/alias-1.c
create mode 100644
gcc/testsuite/gfortran.dg/goacc/classify-kernels-unparallelized-parloops.f95
create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-conversion.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-1.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-10.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-11.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-12.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-13.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-14.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-15.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-16.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-18.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-19.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-2.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-20.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-3.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-4.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-5.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-6.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-7.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-8.f95
create mode 100644
gcc/testsuite/gfortran.dg/goacc/kernels-loop-annotation-9.f95
create mode 100644 gcc/testsuite/gfortran.dg/goacc/kernels-reductions.f90
create mode 100644 gcc/testsuite/gfortran.dg/goacc/loop-auto-transfer-2.f90
create mode 100644 gcc/testsuite/gfortran.dg/goacc/loop-auto-transfer-3.f90
create mode 100644 gcc/testsuite/gfortran.dg/goacc/loop-auto-transfer-4.f90
create mode 100644 gcc/testsuite/gfortran.dg/goacc/omp_data_optimize-1.f90
create mode 100644 libgomp/testsuite/libgomp.oacc-c++/privatized-ref-2.C
create mode 100644 libgomp/testsuite/libgomp.oacc-c++/privatized-ref-3.C
create mode 100644
libgomp/testsuite/libgomp.oacc-c-c++-common/runtime-alias-check-1.c
create mode 100644
libgomp/testsuite/libgomp.oacc-c-c++-common/runtime-alias-check-2.c
create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/privatized-ref-1.f95
--
2.33.0
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634
München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas
Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht
München, HRB 106955