gcc/libgomp
Julian Brown f2f4212e20 openacc: No attach/detach present/release mappings for array descriptors
Standalone attach and detach clauses should not create present/release
mappings for Fortran array descriptors (e.g. used when we have a pointer
to an array), both because it is unnecessary and because those mappings
will be incorrectly subject to reference counting. Simply omitting the
mappings means we just use GOMP_MAP_TO_PSET and GOMP_MAP_{ATTACH,DETACH}
mappings for array descriptors.

That requires a tweak in gimplify.c, since we may now see GOMP_MAP_TO_PSET
without a preceding data-movement mapping.

2020-08-03  Julian Brown  <julian@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

gcc/fortran/
	* trans-openmp.c (gfc_trans_omp_clauses): Don't create present/release
	mappings for array descriptors.

gcc/
	* gimplify.c (gimplify_omp_target_update): Allow GOMP_MAP_TO_PSET
	without a preceding data-movement mapping.

gcc/testsuite/
	* gfortran.dg/goacc/attach-descriptor.f90: Update pattern output. Add
	scanning of gimplify dump.

libgomp/
	* testsuite/libgomp.oacc-fortran/attach-descriptor-1.f90: Don't run for
	shared-memory devices.  Extend with further checking.

Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
2020-08-03 12:06:49 -07:00
..
config aix: FAT libraries: test native compiler mode directly 2020-07-14 10:41:40 -04:00
plugin Removal of HSA offloading from gcc and libgomp 2020-08-03 18:13:00 +02:00
testsuite openacc: No attach/detach present/release mappings for array descriptors 2020-08-03 12:06:49 -07:00
.gitattributes
acc_prof.h
acinclude.m4
aclocal.m4 Removal of HSA offloading from gcc and libgomp 2020-08-03 18:13:00 +02:00
affinity-fmt.c
affinity.c
alloc.c
allocator.c libgomp: Add Fortran routine support for allocators 2020-07-15 08:33:20 +02:00
atomic.c
barrier.c
ChangeLog Daily bump. 2020-07-28 00:16:25 +00:00
ChangeLog.graphite
config.h.in Removal of HSA offloading from gcc and libgomp 2020-08-03 18:13:00 +02:00
configure Removal of HSA offloading from gcc and libgomp 2020-08-03 18:13:00 +02:00
configure.ac libomp: Add omp_depend_kind to omp_lib.{f90,h} 2020-07-23 15:02:15 +02:00
configure.tgt aix: Add GCC64 configuration and FAT target libraries. 2020-06-21 14:14:46 -04:00
critical.c
env.c
error.c
fortran.c libgomp: Add Fortran routine support for allocators 2020-07-15 08:33:20 +02:00
hashtab.h
icv-device.c
icv.c libgomp: Add Fortran routine support for allocators 2020-07-15 08:33:20 +02:00
iter_ull.c
iter.c
libgomp_f.h.in libomp: Add omp_depend_kind to omp_lib.{f90,h} 2020-07-23 15:02:15 +02:00
libgomp_g.h
libgomp-plugin.c
libgomp-plugin.h
libgomp.h openacc: Deep copy attach/detach should not affect reference counts 2020-07-27 09:16:57 -07:00
libgomp.map libgomp: Add Fortran routine support for allocators 2020-07-15 08:33:20 +02:00
libgomp.spec.in
libgomp.texi libgomp: Fix hang when profiling OpenACC programs with CUDA 9.0 nvprof 2020-07-14 10:31:35 -07:00
lock.c
loop_ull.c
loop.c
Makefile.am build: Use -include instead of conditional include. 2020-06-22 21:31:48 +00:00
Makefile.in Removal of HSA offloading from gcc and libgomp 2020-08-03 18:13:00 +02:00
oacc-async.c
oacc-cuda.c
oacc-host.c
oacc-init.c libgomp: Fix hang when profiling OpenACC programs with CUDA 9.0 nvprof 2020-07-14 10:31:35 -07:00
oacc-int.h
oacc-mem.c openacc: Deep copy attach/detach should not affect reference counts 2020-07-27 09:16:57 -07:00
oacc-parallel.c
oacc-plugin.c
oacc-plugin.h
oacc-profiling.c
oacc-target.c
omp_lib.f90.in libomp: Add omp_depend_kind to omp_lib.{f90,h} 2020-07-23 15:02:15 +02:00
omp_lib.h.in libomp: Add omp_depend_kind to omp_lib.{f90,h} 2020-07-23 15:02:15 +02:00
omp.h.in openmp: Change omp_atv_default value and rename omp_atv_sequential to omp_atv_serialized. 2020-07-09 11:29:30 +02:00
openacc_lib.h
openacc.f90
openacc.h
ordered.c
parallel.c
priority_queue.c
priority_queue.h
sections.c
secure_getenv.h
single.c
splay-tree.c
splay-tree.h
target.c openacc: Deep copy attach/detach should not affect reference counts 2020-07-27 09:16:57 -07:00
task.c
taskloop.c
team.c
teams.c
work.c