]> git.ipfire.org Git - thirdparty/gcc.git/commit
OpenMP: Handle tofrom with target enter/exit data
authorTobias Burnus <tobias@codesourcery.com>
Fri, 1 Jul 2022 15:52:03 +0000 (17:52 +0200)
committerTobias Burnus <tobias@codesourcery.com>
Fri, 1 Jul 2022 15:52:03 +0000 (17:52 +0200)
commit9a668532fb19e7c57aa595a26ce3f0d95f9cbb1b
treeb127b7654ff9265f677a85bfc921e47aaf605c78
parentf843bea4ca5613cb713f8b9313daa3938f254a05
OpenMP: Handle tofrom with target enter/exit data

In 5.2, a map clause can be map-entering or map-exiting,
either containing 'tofrom'. The main reason for this is
permit 'map(x)' with 'omp target enter/exit data',
avoiding to specify 'to:/from:' explicitly. (OpenMP
defaults to 'tofrom'.)

gcc/c/ChangeLog:

* c-parser.cc (c_parser_omp_target_enter_data,
c_parser_omp_target_exit_data): Accept tofrom
map-type modifier but use 'to' / 'from' internally.

gcc/cp/ChangeLog:

* parser.cc (cp_parser_omp_target_enter_data,
cp_parser_omp_target_exit_data): Accept tofrom
map-type modifier but use 'to' / 'from' internally.

gcc/fortran/ChangeLog:

* dump-parse-tree.cc (show_omp_namelist): For the map-type,
also handle the always modifer and release/delete.
* openmp.cc (resolve_omp_clauses): Accept tofrom
map-type modifier for target enter/exit data,
but use 'to' / 'from' internally.

libgomp/ChangeLog:

* libgomp.texi (OpenMP 5.2): Mark target enter/exit data
with fromto as implemented.

gcc/testsuite/ChangeLog:

* c-c++-common/gomp/target-data-2.c: New test.
* c-c++-common/gomp/target-data-3.c: New test.
* gfortran.dg/gomp/target-data-1.f90: New test.
* gfortran.dg/gomp/target-data-2.f90: New test.
gcc/c/c-parser.cc
gcc/cp/parser.cc
gcc/fortran/dump-parse-tree.cc
gcc/fortran/openmp.cc
gcc/testsuite/c-c++-common/gomp/target-data-2.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/gomp/target-data-3.c [new file with mode: 0644]
gcc/testsuite/gfortran.dg/gomp/target-data-1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/gomp/target-data-2.f90 [new file with mode: 0644]
libgomp/libgomp.texi