Hi,

This patch series reworks how indirect struct (or class or derived-type)
component mappings are lowered for OpenMP and OpenACC.  I previously
posted this against the og10 branch:

  https://gcc.gnu.org/pipermail/gcc-patches/2021-May/570058.html

This version of the series, rebased to trunk, incorporates parts of some
of Chung-Lin's patches from the og10 branch.  The new "member-array-acc.C"
and "member-array-omp.C" tests also depend on a couple of his other
patches from the og10 branch that have not landed upstream yet:

  "Target mapping C++ members inside member functions"
  "Fix regression of array members in OpenMP map clauses."

The tests in question have been XFAILed for now.

Tested with offloading to NVPTX (as a series). Further comments on
individual patches.

Thanks,

Julian

Julian Brown (5):
  Unify ARRAY_REF/INDIRECT_REF stripping code in extract_base_bit_offset
  Refactor struct lowering for OpenMP/OpenACC in gimplify.c
  Rewrite GOMP_MAP_ATTACH_DETACH mappings for OpenMP also
  Rework indirect struct handling for OpenACC/OpenMP in gimplify.c
  Mapping of components of references to pointers to structs for
    OpenMP/OpenACC

 gcc/cp/semantics.c                            |    7 +-
 gcc/fortran/trans-openmp.c                    |   20 +-
 gcc/gimplify.c                                | 1042 +++++++++++------
 gcc/omp-low.c                                 |   16 +-
 gcc/testsuite/g++.dg/goacc/member-array-acc.C |   14 +
 gcc/testsuite/g++.dg/gomp/member-array-omp.C  |   14 +
 .../testsuite/libgomp.oacc-c++/deep-copy-17.C |  101 ++
 .../libgomp.oacc-c-c++-common/deep-copy-15.c  |   71 ++
 .../libgomp.oacc-c-c++-common/deep-copy-16.c  |  231 ++++
 9 files changed, 1111 insertions(+), 405 deletions(-)
 create mode 100644 gcc/testsuite/g++.dg/goacc/member-array-acc.C
 create mode 100644 gcc/testsuite/g++.dg/gomp/member-array-omp.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

-- 
2.29.2

Reply via email to