Hi! In follow-up messages, I'll be posting the separated parts (for easier review) of a next set of OpenACC changes that we'd like to commit. ChangeLog updates not yet written; will do that before commit, obviously. Overall diffstat: gcc/c-family/c-common.c | 3 +- gcc/c-family/c-common.h | 2 + gcc/c-family/c-omp.c | 105 ++ gcc/c-family/c-pragma.c | 4 + gcc/c-family/c-pragma.h | 14 +- gcc/c/c-parser.c | 1353 ++++++++++++---- gcc/c/c-tree.h | 3 +- gcc/c/c-typeck.c | 112 +- gcc/cp/cp-gimplify.c | 3 +- gcc/cp/cp-tree.h | 3 +- gcc/cp/parser.c | 1382 +++++++++++++---- gcc/cp/parser.h | 4 + gcc/cp/pt.c | 43 +- gcc/cp/semantics.c | 151 +- gcc/fortran/dump-parse-tree.c | 12 +- gcc/fortran/gfortran.h | 50 +- gcc/fortran/match.h | 1 + gcc/fortran/openmp.c | 581 +++++-- gcc/fortran/parse.c | 65 +- gcc/fortran/parse.h | 2 +- gcc/fortran/resolve.c | 5 + gcc/fortran/st.c | 7 + gcc/fortran/trans-decl.c | 62 +- gcc/fortran/trans-openmp.c | 66 +- gcc/fortran/trans-stmt.c | 7 +- gcc/fortran/trans-stmt.h | 2 +- gcc/fortran/trans.c | 2 + gcc/gimplify.c | 16 +- gcc/omp-low.c | 11 +- gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c | 46 + .../c-c++-common/goacc-gomp/nesting-fail-1.c | 25 - gcc/testsuite/c-c++-common/goacc/asyncwait-1.c | 4 +- gcc/testsuite/c-c++-common/goacc/data-2.c | 12 +- gcc/testsuite/c-c++-common/goacc/declare-1.c | 84 + gcc/testsuite/c-c++-common/goacc/declare-2.c | 67 + gcc/testsuite/c-c++-common/goacc/dtype-1.c | 113 ++ gcc/testsuite/c-c++-common/goacc/dtype-2.c | 31 + gcc/testsuite/c-c++-common/goacc/host_data-1.c | 14 + gcc/testsuite/c-c++-common/goacc/host_data-2.c | 14 + gcc/testsuite/c-c++-common/goacc/host_data-3.c | 16 + gcc/testsuite/c-c++-common/goacc/host_data-4.c | 15 + gcc/testsuite/c-c++-common/goacc/kernels-1.c | 6 - gcc/testsuite/c-c++-common/goacc/kernels-empty.c | 6 + gcc/testsuite/c-c++-common/goacc/kernels-eternal.c | 11 + .../c-c++-common/goacc/kernels-noreturn.c | 12 + gcc/testsuite/c-c++-common/goacc/loop-1.c | 2 - gcc/testsuite/c-c++-common/goacc/parallel-1.c | 6 - gcc/testsuite/c-c++-common/goacc/parallel-empty.c | 6 + .../c-c++-common/goacc/parallel-eternal.c | 11 + .../c-c++-common/goacc/parallel-noreturn.c | 12 + gcc/testsuite/c-c++-common/goacc/reduction-1.c | 25 +- gcc/testsuite/c-c++-common/goacc/reduction-2.c | 22 +- gcc/testsuite/c-c++-common/goacc/reduction-3.c | 22 +- gcc/testsuite/c-c++-common/goacc/reduction-4.c | 40 +- gcc/testsuite/c-c++-common/goacc/routine-1.c | 35 + gcc/testsuite/c-c++-common/goacc/routine-2.c | 36 + gcc/testsuite/c-c++-common/goacc/routine-3.c | 52 + gcc/testsuite/c-c++-common/goacc/routine-4.c | 87 ++ gcc/testsuite/c-c++-common/goacc/tile.c | 26 + gcc/testsuite/g++.dg/goacc/template-reduction.C | 100 ++ gcc/testsuite/g++.dg/goacc/template.C | 131 ++ gcc/testsuite/gfortran.dg/goacc/cache-1.f95 | 1 - gcc/testsuite/gfortran.dg/goacc/coarray.f95 | 2 +- gcc/testsuite/gfortran.dg/goacc/coarray_2.f90 | 1 + gcc/testsuite/gfortran.dg/goacc/combined_loop.f90 | 2 +- gcc/testsuite/gfortran.dg/goacc/cray.f95 | 1 - gcc/testsuite/gfortran.dg/goacc/declare-1.f95 | 3 +- gcc/testsuite/gfortran.dg/goacc/declare-2.f95 | 44 + gcc/testsuite/gfortran.dg/goacc/default.f95 | 17 + gcc/testsuite/gfortran.dg/goacc/dtype-1.f95 | 161 ++ gcc/testsuite/gfortran.dg/goacc/dtype-2.f95 | 39 + gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95 | 2 +- gcc/testsuite/gfortran.dg/goacc/loop-1.f95 | 1 - gcc/testsuite/gfortran.dg/goacc/loop-2.f95 | 26 +- gcc/testsuite/gfortran.dg/goacc/modules.f95 | 55 + gcc/testsuite/gfortran.dg/goacc/parameter.f95 | 1 - gcc/testsuite/gfortran.dg/goacc/update.f95 | 5 + gcc/tree-core.h | 14 +- gcc/tree-pretty-print.c | 6 + gcc/tree.c | 13 +- gcc/tree.h | 21 +- include/gomp-constants.h | 4 + libgomp/oacc-mem.c | 3 + libgomp/oacc-ptx.h | 28 + libgomp/plugin/plugin-nvptx.c | 10 + .../libgomp.oacc-c++/template-reduction.C | 102 ++ .../libgomp.oacc-c-c++-common/atomic_capture-1.c | 866 +++++++++++ .../libgomp.oacc-c-c++-common/atomic_capture-2.c | 1626 ++++++++++++++++++++ .../libgomp.oacc-c-c++-common/atomic_update-1.c | 760 +++++++++ .../libgomp.oacc-c-c++-common/clauses-1.c | 26 + .../testsuite/libgomp.oacc-c-c++-common/data-2.c | 44 +- .../testsuite/libgomp.oacc-c-c++-common/data-3.c | 18 +- .../libgomp.oacc-c-c++-common/data-clauses.h | 202 +++ .../libgomp.oacc-c-c++-common/kernels-1.c | 182 +-- .../testsuite/libgomp.oacc-c-c++-common/lib-69.c | 70 +- .../testsuite/libgomp.oacc-c-c++-common/lib-70.c | 79 +- .../testsuite/libgomp.oacc-c-c++-common/lib-71.c | 55 +- .../testsuite/libgomp.oacc-c-c++-common/lib-72.c | 60 +- .../testsuite/libgomp.oacc-c-c++-common/lib-73.c | 64 +- .../testsuite/libgomp.oacc-c-c++-common/lib-74.c | 91 +- .../testsuite/libgomp.oacc-c-c++-common/lib-75.c | 89 +- .../testsuite/libgomp.oacc-c-c++-common/lib-76.c | 88 +- .../testsuite/libgomp.oacc-c-c++-common/lib-77.c | 91 +- .../testsuite/libgomp.oacc-c-c++-common/lib-78.c | 91 +- .../testsuite/libgomp.oacc-c-c++-common/lib-79.c | 91 +- .../testsuite/libgomp.oacc-c-c++-common/lib-80.c | 95 +- .../testsuite/libgomp.oacc-c-c++-common/lib-81.c | 106 +- .../testsuite/libgomp.oacc-c-c++-common/lib-82.c | 43 +- .../testsuite/libgomp.oacc-c-c++-common/lib-83.c | 22 +- .../libgomp.oacc-c-c++-common/parallel-1.c | 204 +-- .../libgomp.oacc-c-c++-common/routine-1.c | 40 + .../libgomp.oacc-c-c++-common/routine-2.c | 41 + libgomp/testsuite/libgomp.oacc-c-c++-common/subr.h | 44 +- .../testsuite/libgomp.oacc-c-c++-common/subr.ptx | 222 +-- .../testsuite/libgomp.oacc-c-c++-common/timer.h | 103 -- .../libgomp.oacc-fortran/atomic_capture-1.f90 | 784 ++++++++++ .../libgomp.oacc-fortran/atomic_update-1.f90 | 338 ++++ libgomp/testsuite/libgomp.oacc-fortran/cache-1.f90 | 26 + .../testsuite/libgomp.oacc-fortran/clauses-1.f90 | 290 ++++ libgomp/testsuite/libgomp.oacc-fortran/data-1.f90 | 231 ++- libgomp/testsuite/libgomp.oacc-fortran/data-2.f90 | 50 + libgomp/testsuite/libgomp.oacc-fortran/data-3.f90 | 34 +- .../testsuite/libgomp.oacc-fortran/data-4-2.f90 | 19 +- libgomp/testsuite/libgomp.oacc-fortran/data-4.f90 | 19 +- .../testsuite/libgomp.oacc-fortran/declare-1.f90 | 229 +++ libgomp/testsuite/libgomp.oacc-fortran/lib-12.f90 | 24 + libgomp/testsuite/libgomp.oacc-fortran/lib-13.f90 | 28 + libgomp/testsuite/libgomp.oacc-fortran/lib-14.f90 | 79 + libgomp/testsuite/libgomp.oacc-fortran/lib-15.f90 | 52 + .../testsuite/libgomp.oacc-fortran/routine-5.f90 | 27 + 130 files changed, 10970 insertions(+), 2495 deletions(-) Grüße, Thomas