This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 0/6] [og8] OpenACC attach/detach
- From: Julian Brown <julian at codesourcery dot com>
- To: <gcc-patches at gcc dot gnu dot org>
- Cc: <cltang at codesourcery dot com>, <Catherine_Moore at mentor dot com>, <jakub at redhat dot com>
- Date: Tue, 20 Nov 2018 13:54:46 -0800
- Subject: [PATCH 0/6] [og8] OpenACC attach/detach
This patch series is a backport of the OpenACC attach/detach support to
the openacc-gcc-8-branch branch. It was previously posted upstream here:
https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00823.html
This version of the series has been adjusted to account for features on
the branch that are not yet upstream. It also contains improvements to
the reference counting behaviour, partially verified using self-checking
code (not quite complete, and not yet submitted).
Tested (as a series) with offloading to nvptx. I will apply to the
openacc-gcc-8-branch shortly.
Julian Brown (6):
[og8] Host-to-device transfer coalescing & magic offset value
self-documentation
[og8] Factor out duplicate code in gimplify_scan_omp_clauses
[og8] OpenACC 2.6 manual deep copy support (attach/detach)
[og8] Interaction of dynamic/multidimensional arrays with
attach/detach.
[og8] Backport parts of upstream declare-allocate patch
[og8] OpenACC refcounting refresh
gcc/c/c-parser.c | 15 +-
gcc/c/c-typeck.c | 4 +
gcc/cp/parser.c | 16 +-
gcc/cp/semantics.c | 6 +-
gcc/fortran/gfortran.h | 2 +
gcc/fortran/openmp.c | 126 ++++--
gcc/fortran/trans-openmp.c | 163 +++-----
gcc/gimplify.c | 414 ++++++++++--------
gcc/omp-low.c | 13 +-
.../c-c++-common/goacc/deep-copy-multidim.c | 32 ++
gcc/testsuite/c-c++-common/goacc/mdc-1.c | 10 +-
gcc/testsuite/gfortran.dg/goacc/data-clauses.f95 | 38 +-
gcc/testsuite/gfortran.dg/goacc/derived-types.f90 | 23 +-
.../gfortran.dg/goacc/enter-exit-data.f95 | 24 +-
.../gfortran.dg/goacc/kernels-alias-3.f95 | 4 +-
libgomp/libgomp.h | 30 ++-
libgomp/libgomp.map | 10 +
libgomp/oacc-mem.c | 459 ++++++++++++--------
libgomp/oacc-parallel.c | 212 ++++++++--
libgomp/openacc.h | 6 +
libgomp/target.c | 291 +++++++++++--
.../libgomp.oacc-c-c++-common/context-2.c | 6 +-
.../libgomp.oacc-c-c++-common/context-4.c | 6 +-
.../libgomp.oacc-c-c++-common/deep-copy-1.c | 24 +
.../libgomp.oacc-c-c++-common/deep-copy-2.c | 29 ++
.../libgomp.oacc-c-c++-common/deep-copy-3.c | 34 ++
.../libgomp.oacc-c-c++-common/deep-copy-4.c | 87 ++++
.../libgomp.oacc-c-c++-common/deep-copy-5.c | 81 ++++
.../libgomp.oacc-c-c++-common/deep-copy-6.c | 59 +++
.../libgomp.oacc-c-c++-common/deep-copy-7.c | 42 ++
.../libgomp.oacc-c-c++-common/deep-copy-8.c | 53 +++
libgomp/testsuite/libgomp.oacc-fortran/data-2.f90 | 20 +-
.../testsuite/libgomp.oacc-fortran/deep-copy-1.f90 | 35 ++
.../testsuite/libgomp.oacc-fortran/deep-copy-2.f90 | 33 ++
.../testsuite/libgomp.oacc-fortran/deep-copy-3.f90 | 34 ++
.../testsuite/libgomp.oacc-fortran/deep-copy-4.f90 | 49 ++
.../testsuite/libgomp.oacc-fortran/deep-copy-5.f90 | 57 +++
.../testsuite/libgomp.oacc-fortran/deep-copy-6.f90 | 61 +++
.../testsuite/libgomp.oacc-fortran/deep-copy-7.f90 | 89 ++++
.../testsuite/libgomp.oacc-fortran/deep-copy-8.f90 | 41 ++
.../libgomp.oacc-fortran/derived-type-1.f90 | 6 +-
.../libgomp.oacc-fortran/non-scalar-data.f90 | 6 +-
.../testsuite/libgomp.oacc-fortran/update-2.f90 | 44 +-
43 files changed, 2079 insertions(+), 715 deletions(-)
create mode 100644 gcc/testsuite/c-c++-common/goacc/deep-copy-multidim.c
create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-1.c
create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-2.c
create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-3.c
create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-4.c
create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-5.c
create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-6.c
create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-7.c
create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c
create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/deep-copy-1.f90
create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/deep-copy-2.f90
create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/deep-copy-3.f90
create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/deep-copy-4.f90
create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/deep-copy-5.f90
create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/deep-copy-6.f90
create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/deep-copy-7.f90
create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/deep-copy-8.f90