From 9b55f6cffcf9251625370c78110f856d02da4380 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 17 May 2017 12:07:30 +0000 Subject: OpenACC 2.5 Profiling Interface changes for "finalize" handling libgomp/ * libgomp.texi (OpenACC Profiling Interface): Update. * oacc-parallel.c (GOACC_parallel_keyed): Update profiling event generation. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@248150 138bc75d-0d04-0410-961f-82ee72b054a4 --- libgomp/ChangeLog.gomp | 4 ++++ libgomp/libgomp.texi | 4 ++-- libgomp/oacc-parallel.c | 9 +++++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/libgomp/ChangeLog.gomp b/libgomp/ChangeLog.gomp index 2ea72156a1a..996c1f9fc92 100644 --- a/libgomp/ChangeLog.gomp +++ b/libgomp/ChangeLog.gomp @@ -1,5 +1,9 @@ 2017-05-17 Thomas Schwinge + * libgomp.texi (OpenACC Profiling Interface): Update. + * oacc-parallel.c (GOACC_parallel_keyed): Update profiling event + generation. + * oacc-parallel.c (GOACC_enter_exit_data): Locally compute "finalize", and remove the formal parameter. Adjust all users. (GOACC_declare): Don't replace GOMP_MAP_FROM with diff --git a/libgomp/libgomp.texi b/libgomp/libgomp.texi index 69fb3be3ac9..1dea1e237b8 100644 --- a/libgomp/libgomp.texi +++ b/libgomp/libgomp.texi @@ -3459,8 +3459,8 @@ offloading devices (it's not clear if they should be): @item @code{acc_free} @item @code{acc_copyin}, @code{acc_present_or_copyin}, @code{acc_copyin_async} @item @code{acc_create}, @code{acc_present_or_create}, @code{acc_create_async} -@item @code{acc_copyout}, @code{acc_copyout_async} -@item @code{acc_delete}, @code{acc_delete_async} +@item @code{acc_copyout}, @code{acc_copyout_async}, @code{acc_copyout_finalize}, @code{acc_copyout_finalize_async} +@item @code{acc_delete}, @code{acc_delete_async}, @code{acc_delete_finalize}, @code{acc_delete_finalize_async} @item @code{acc_update_device}, @code{acc_update_device_async} @item @code{acc_update_self}, @code{acc_update_self_async} @item @code{acc_map_data}, @code{acc_unmap_data} diff --git a/libgomp/oacc-parallel.c b/libgomp/oacc-parallel.c index ff6e96c1d96..622c71135ed 100644 --- a/libgomp/oacc-parallel.c +++ b/libgomp/oacc-parallel.c @@ -333,8 +333,10 @@ GOACC_parallel_keyed (int device, void (*fn) (void *), async, dims, tgt); /* If running synchronously, unmap immediately. */ + bool copyfrom = true; if (async < acc_async_noval) { + unmap: if (profiling_dispatch_p) { prof_info.event_type = acc_ev_exit_data_start; @@ -344,7 +346,7 @@ GOACC_parallel_keyed (int device, void (*fn) (void *), goacc_profiling_dispatch (&prof_info, &enter_exit_data_event_info, &api_info); } - gomp_unmap_vars (tgt, true); + gomp_unmap_vars (tgt, copyfrom); if (profiling_dispatch_p) { prof_info.event_type = acc_ev_exit_data_end; @@ -369,7 +371,10 @@ GOACC_parallel_keyed (int device, void (*fn) (void *), if (async_unmap) tgt->device_descr->openacc.register_async_cleanup_func (tgt, async); else - gomp_unmap_vars (tgt, false); + { + copyfrom = false; + goto unmap; + } } acc_dev->openacc.async_set_async_func (acc_async_sync); -- cgit v1.2.3