This patch series contains fixes for various problems with async support for OpenACC at present:
- Asynchonous host-to-device copies invoked from within libgomp (target.c) could copy bad data to the target -- and the workaround for that currently used in the AMD GCN target plugin could lead to a different problem (a race condition). - The OpenACC profiling-interface implementation did not measure asynchronous operations properly. - Several test cases misuse OpenACC asynchronous support (more race conditions). Further comments on individual patches. Tested with offloading to AMD GCN. OK for mainline? Thanks, Julian Julian Brown (4): openacc: Async fix for lib-94 testcase openacc: Fix async bugs in several OpenACC test cases openacc: Fix asynchronous host-to-device copies in libgomp runtime openacc: Profiling-interface fixes for asynchronous operations libgomp/libgomp.h | 2 +- libgomp/oacc-host.c | 5 +- libgomp/oacc-mem.c | 36 +++- libgomp/oacc-parallel.c | 190 ++++++++++++++---- libgomp/plugin/plugin-gcn.c | 20 +- libgomp/target.c | 111 ++++++---- .../acc_prof-init-1.c | 5 +- .../acc_prof-parallel-1.c | 64 ++---- .../libgomp.oacc-c-c++-common/deep-copy-10.c | 14 +- .../libgomp.oacc-c-c++-common/lib-94.c | 4 +- .../libgomp.oacc-fortran/lib-16-2.f90 | 5 + .../testsuite/libgomp.oacc-fortran/lib-16.f90 | 5 + 12 files changed, 289 insertions(+), 172 deletions(-) -- 2.29.2