[PATCH 0/8] OpenMP 5.0: C++ "declare mapper" support (plus struct rework, etc.)
Julian Brown
julian@codesourcery.com
Fri Feb 18 20:03:23 GMT 2022
Hi,
This patch contains rebased/slightly bug-fixed versions of the patches
previously posted in the series:
https://gcc.gnu.org/pipermail/gcc-patches/2021-November/585439.html
plus a new implementation of "declare mapper" support for C++. This
can't be committed now, but posting now so others (mostly Jakub?) have
a chance to look at it and comment on the general approach, etc..
Further commentary on individual patches.
Thanks,
Julian
Julian Brown (8):
OpenMP 5.0: Clause ordering for OpenMP 5.0 (topological sorting by
base pointer)
Remove omp_target_reorder_clauses
OpenMP/OpenACC struct sibling list gimplification extension and rework
OpenMP: Add inspector class to unify mapped address analysis
OpenMP: lvalue parsing for map clauses (C++)
OpenMP: lvalue parsing for map clauses (C)
Use OMP_ARRAY_SECTION instead of TREE_LIST in C++ FE
OpenMP 5.0 "declare mapper" support for C++
gcc/c-family/c-common.h | 45 +
gcc/c-family/c-omp.cc | 227 ++
gcc/c/c-parser.cc | 150 +-
gcc/c/c-tree.h | 1 +
gcc/c/c-typeck.cc | 251 +-
gcc/cp/cp-gimplify.cc | 6 +
gcc/cp/cp-objcp-common.h | 2 +
gcc/cp/cp-tree.h | 10 +
gcc/cp/decl.cc | 18 +-
gcc/cp/error.cc | 9 +
gcc/cp/mangle.cc | 5 +-
gcc/cp/name-lookup.cc | 3 +-
gcc/cp/parser.cc | 520 ++-
gcc/cp/parser.h | 3 +
gcc/cp/pt.cc | 144 +-
gcc/cp/semantics.cc | 863 +++--
gcc/fortran/parse.cc | 3 +
gcc/fortran/trans-openmp.cc | 20 +-
gcc/gimplify.cc | 2822 ++++++++++++-----
gcc/langhooks-def.h | 3 +
gcc/langhooks.cc | 9 +
gcc/langhooks.h | 4 +
gcc/omp-general.h | 52 +
gcc/omp-low.cc | 23 +-
gcc/testsuite/c-c++-common/gomp/map-1.c | 3 +-
gcc/testsuite/c-c++-common/gomp/map-6.c | 12 +-
gcc/testsuite/g++.dg/goacc/member-array-acc.C | 13 +
gcc/testsuite/g++.dg/gomp/declare-mapper-1.C | 58 +
gcc/testsuite/g++.dg/gomp/declare-mapper-2.C | 30 +
gcc/testsuite/g++.dg/gomp/declare-mapper-3.C | 27 +
gcc/testsuite/g++.dg/gomp/declare-mapper-4.C | 74 +
gcc/testsuite/g++.dg/gomp/ind-base-3.C | 38 +
gcc/testsuite/g++.dg/gomp/map-assignment-1.C | 12 +
gcc/testsuite/g++.dg/gomp/map-inc-1.C | 10 +
gcc/testsuite/g++.dg/gomp/map-lvalue-ref-1.C | 19 +
gcc/testsuite/g++.dg/gomp/map-ptrmem-1.C | 36 +
gcc/testsuite/g++.dg/gomp/map-ptrmem-2.C | 39 +
.../g++.dg/gomp/map-static-cast-lvalue-1.C | 17 +
gcc/testsuite/g++.dg/gomp/map-ternary-1.C | 20 +
gcc/testsuite/g++.dg/gomp/member-array-2.C | 86 +
gcc/testsuite/g++.dg/gomp/member-array-omp.C | 13 +
gcc/testsuite/g++.dg/gomp/pr67522.C | 2 +-
gcc/testsuite/g++.dg/gomp/target-3.C | 4 +-
gcc/testsuite/g++.dg/gomp/target-lambda-1.C | 6 +-
gcc/testsuite/g++.dg/gomp/target-this-2.C | 2 +-
gcc/testsuite/g++.dg/gomp/target-this-3.C | 4 +-
gcc/testsuite/g++.dg/gomp/target-this-4.C | 4 +-
.../g++.dg/gomp/unmappable-component-1.C | 21 +
gcc/tree-core.h | 4 +
gcc/tree-pretty-print.cc | 56 +
gcc/tree.cc | 2 +
gcc/tree.def | 10 +
gcc/tree.h | 21 +
include/gomp-constants.h | 8 +-
libgomp/testsuite/libgomp.c++/baseptrs-3.C | 275 ++
libgomp/testsuite/libgomp.c++/class-array-1.C | 59 +
.../testsuite/libgomp.c++/declare-mapper-1.C | 87 +
.../testsuite/libgomp.c++/declare-mapper-2.C | 55 +
.../testsuite/libgomp.c++/declare-mapper-3.C | 63 +
.../testsuite/libgomp.c++/declare-mapper-4.C | 63 +
.../testsuite/libgomp.c++/declare-mapper-5.C | 52 +
.../testsuite/libgomp.c++/declare-mapper-6.C | 37 +
.../testsuite/libgomp.c++/declare-mapper-7.C | 48 +
.../testsuite/libgomp.c++/declare-mapper-8.C | 61 +
libgomp/testsuite/libgomp.c++/ind-base-1.C | 162 +
libgomp/testsuite/libgomp.c++/ind-base-2.C | 49 +
libgomp/testsuite/libgomp.c++/map-comma-1.C | 15 +
.../testsuite/libgomp.c++/map-rvalue-ref-1.C | 22 +
.../testsuite/libgomp.c++/member-array-1.C | 89 +
libgomp/testsuite/libgomp.c++/struct-ref-1.C | 97 +
.../libgomp.c-c++-common/baseptrs-1.c | 50 +
.../libgomp.c-c++-common/baseptrs-2.c | 70 +
.../libgomp.c-c++-common/ind-base-4.c | 50 +
.../libgomp.c-c++-common/unary-ptr-1.c | 16 +
.../testsuite/libgomp.oacc-c++/deep-copy-17.C | 101 +
.../libgomp.oacc-c-c++-common/deep-copy-15.c | 68 +
.../libgomp.oacc-c-c++-common/deep-copy-16.c | 231 ++
.../deep-copy-arrayofstruct.c | 2 +-
78 files changed, 6406 insertions(+), 1260 deletions(-)
create mode 100644 gcc/testsuite/g++.dg/goacc/member-array-acc.C
create mode 100644 gcc/testsuite/g++.dg/gomp/declare-mapper-1.C
create mode 100644 gcc/testsuite/g++.dg/gomp/declare-mapper-2.C
create mode 100644 gcc/testsuite/g++.dg/gomp/declare-mapper-3.C
create mode 100644 gcc/testsuite/g++.dg/gomp/declare-mapper-4.C
create mode 100644 gcc/testsuite/g++.dg/gomp/ind-base-3.C
create mode 100644 gcc/testsuite/g++.dg/gomp/map-assignment-1.C
create mode 100644 gcc/testsuite/g++.dg/gomp/map-inc-1.C
create mode 100644 gcc/testsuite/g++.dg/gomp/map-lvalue-ref-1.C
create mode 100644 gcc/testsuite/g++.dg/gomp/map-ptrmem-1.C
create mode 100644 gcc/testsuite/g++.dg/gomp/map-ptrmem-2.C
create mode 100644 gcc/testsuite/g++.dg/gomp/map-static-cast-lvalue-1.C
create mode 100644 gcc/testsuite/g++.dg/gomp/map-ternary-1.C
create mode 100644 gcc/testsuite/g++.dg/gomp/member-array-2.C
create mode 100644 gcc/testsuite/g++.dg/gomp/member-array-omp.C
create mode 100644 gcc/testsuite/g++.dg/gomp/unmappable-component-1.C
create mode 100644 libgomp/testsuite/libgomp.c++/baseptrs-3.C
create mode 100644 libgomp/testsuite/libgomp.c++/class-array-1.C
create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-1.C
create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-2.C
create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-3.C
create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-4.C
create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-5.C
create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-6.C
create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-7.C
create mode 100644 libgomp/testsuite/libgomp.c++/declare-mapper-8.C
create mode 100644 libgomp/testsuite/libgomp.c++/ind-base-1.C
create mode 100644 libgomp/testsuite/libgomp.c++/ind-base-2.C
create mode 100644 libgomp/testsuite/libgomp.c++/map-comma-1.C
create mode 100644 libgomp/testsuite/libgomp.c++/map-rvalue-ref-1.C
create mode 100644 libgomp/testsuite/libgomp.c++/member-array-1.C
create mode 100644 libgomp/testsuite/libgomp.c++/struct-ref-1.C
create mode 100644 libgomp/testsuite/libgomp.c-c++-common/baseptrs-1.c
create mode 100644 libgomp/testsuite/libgomp.c-c++-common/baseptrs-2.c
create mode 100644 libgomp/testsuite/libgomp.c-c++-common/ind-base-4.c
create mode 100644 libgomp/testsuite/libgomp.c-c++-common/unary-ptr-1.c
create mode 100644 libgomp/testsuite/libgomp.oacc-c++/deep-copy-17.C
create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-15.c
create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-16.c
rename {gcc/testsuite/c-c++-common/goacc => libgomp/testsuite/libgomp.oacc-c-c++-common}/deep-copy-arrayofstruct.c (98%)
--
2.29.2
More information about the Gcc-patches
mailing list