@@ -1,5 +1,9 @@
2017-05-17 Thomas Schwinge <thomas@codesourcery.com>
+ * 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
@@ -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}
@@ -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);