OpenACC – support "if" + "if_present" clauses with "host_data"
authorTobias Burnus <burnus@gcc.gnu.org>
Fri, 10 Jan 2020 15:08:41 +0000 (16:08 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Fri, 10 Jan 2020 15:08:41 +0000 (16:08 +0100)
commitd5c23c6ceacf666f218676b648801379044e326a
tree27ff72e6195bc05973f17caeee04c66ed8f1db57
parent7cee96370cf624dbda81fcd3cd32ddb48a2fc3d3
OpenACC – support "if" + "if_present" clauses with "host_data"

2020-01-10  Gergö Barany  <gergo@codesourcery.com>
    Thomas Schwinge <thomas@codesourcery.com>
    Julian Brown  <julian@codesourcery.com>
    Tobias Burnus  <tobias@codesourcery.com>

        gcc/c/
        * c-parser.c (OACC_HOST_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_IF
        and PRAGMA_OACC_CLAUSE_IF_PRESENT.

        gcc/cp/
        * parser.c (OACC_HOST_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_IF
        and PRAGMA_OACC_CLAUSE_IF_PRESENT.

        gcc/fortran/
        * openmp.c (OACC_HOST_DATA_CLAUSES): Add PRAGMA_OACC_CLAUSE_IF
        and PRAGMA_OACC_CLAUSE_IF_PRESENT.

gcc/
* omp-low.c (lower_omp_target): Use GOMP_MAP_USE_DEVICE_PTR_IF_PRESENT
if PRAGMA_OACC_CLAUSE_IF_PRESENT exist.

gcc/testsuite/
* c-c++-common/goacc/host_data-1.c: Added tests of if and if_present
clauses on host_data.
* gfortran.dg/goacc/host_data-tree.f95: Likewise.

include/
* gomp-constants.h (enum gomp_map_kind): New enumeration constant
GOMP_MAP_USE_DEVICE_PTR_IF_PRESENT.

libgomp/
* oacc-parallel.c (GOACC_data_start): Handle
GOMP_MAP_USE_DEVICE_PTR_IF_PRESENT.
* target.c (gomp_map_vars_async): Likewise.
* testsuite/libgomp.oacc-c-c++-common/host_data-7.c: New.
* testsuite/libgomp.oacc-fortran/host_data-5.F90: New.

From-SVN: r280115
gcc/c/c-parser.c
gcc/cp/parser.c
gcc/fortran/openmp.c
gcc/omp-low.c
gcc/testsuite/c-c++-common/goacc/host_data-1.c
gcc/testsuite/gfortran.dg/goacc/host_data-tree.f95
include/gomp-constants.h
libgomp/oacc-parallel.c
libgomp/target.c
libgomp/testsuite/libgomp.oacc-c-c++-common/host_data-7.c [new file with mode: 0644]
libgomp/testsuite/libgomp.oacc-fortran/host_data-5.F90 [new file with mode: 0644]