]> git.ipfire.org Git - thirdparty/gcc.git/commit
OpenACC 2.7: default clause support for data constructs
authorChung-Lin Tang <cltang@codesourcery.com>
Tue, 6 Jun 2023 10:46:29 +0000 (03:46 -0700)
committerThomas Schwinge <thomas@codesourcery.com>
Tue, 15 Aug 2023 14:31:56 +0000 (16:31 +0200)
commitbed993884b149851fe930b43cf11cbcdf05f1578
tree79983da781a0031a6c0b7bc06256a9e8e485fa6d
parent0618adfa80fcd2fd7ae03b30553c60a6b1abf573
OpenACC 2.7: default clause support for data constructs

This patch implements the OpenACC 2.7 addition of default(none|present) support
for data constructs.

Now, specifying "default(none|present)" on a data construct turns on same
default clause behavior for all lexically enclosed compute constructs (which
don't already themselves have a default clause).

gcc/c/ChangeLog:
* c-parser.cc (OACC_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.

gcc/cp/ChangeLog:
* parser.cc (OACC_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.

gcc/fortran/ChangeLog:
* openmp.cc (OACC_DATA_CLAUSES): Add OMP_CLAUSE_DEFAULT.

gcc/ChangeLog:
* gimplify.cc (oacc_region_type_name): New function.
(oacc_default_clause): If no 'default' clause appears on this
compute construct, see if one appears on a lexically containing
'data' construct.
(gimplify_scan_omp_clauses): Upon OMP_CLAUSE_DEFAULT case, set
ctx->oacc_default_clause_ctx to current context.

gcc/testsuite/ChangeLog:
* c-c++-common/goacc/default-3.c: Adjust testcase.
* c-c++-common/goacc/default-4.c: Adjust testcase.
* c-c++-common/goacc/default-5.c: Adjust testcase.
* gfortran.dg/goacc/default-3.f95: Adjust testcase.
* gfortran.dg/goacc/default-4.f: Adjust testcase.
* gfortran.dg/goacc/default-5.f: Adjust testcase.

Co-authored-by: Thomas Schwinge <thomas@codesourcery.com>
gcc/c/c-parser.cc
gcc/cp/parser.cc
gcc/fortran/openmp.cc
gcc/gimplify.cc
gcc/testsuite/c-c++-common/goacc/default-3.c
gcc/testsuite/c-c++-common/goacc/default-4.c
gcc/testsuite/c-c++-common/goacc/default-5.c
gcc/testsuite/gfortran.dg/goacc/default-3.f95
gcc/testsuite/gfortran.dg/goacc/default-4.f
gcc/testsuite/gfortran.dg/goacc/default-5.f