gcc/libgomp
Frederik Harwath 001ab12e62 openmp: ignore nowait if async execution is unsupported [PR93481]
An OpenMP "nowait" clause on a target construct currently leads to
a call to GOMP_OFFLOAD_async_run in the plugin that is used for
offloading at execution time. The nvptx plugin contains only a stub
of this function that always produces a fatal error if called.

This commit changes the "nowait" implementation to ignore the clause
if the executing device's plugin does not implement GOMP_OFFLOAD_async_run.
The stub in the nvptx plugin is removed which effectively means that
programs containing "nowait" can now be executed with nvptx offloading
as if the clause had not been used.
This behavior is consistent with the OpenMP specification which says that
"[...] execution of the target task *may* be deferred" (emphasis added),
cf. OpenMP 5.0, page 172.

libgomp/

	* plugin/plugin-nvptx.c: Remove GOMP_OFFLOAD_async_run stub.
	* target.c (gomp_load_plugin_for_device): Make "async_run" loading
	optional.
	(gomp_target_task_fn): Assert "devicep->async_run_func".
	(clear_unsupported_flags): New function to remove unsupported flags
	(right now only GOMP_TARGET_FLAG_NOWAIT) that can be be ignored.
	(GOMP_target_ext): Apply clear_unsupported_flags to flags.
	* testsuite/libgomp.c/target-33.c:
	Remove xfail for offload_target_nvptx.
	* testsuite/libgomp.c/target-34.c: Likewise.
2020-02-13 10:18:31 +01:00
..
config Rename acc_device_gcn to acc_device_radeon 2020-01-17 18:11:52 +00:00
plugin openmp: ignore nowait if async execution is unsupported [PR93481] 2020-02-13 10:18:31 +01:00
testsuite openmp: ignore nowait if async execution is unsupported [PR93481] 2020-02-13 10:18:31 +01:00
acc_prof.h Update copyright years. 2020-01-01 12:51:42 +01:00
acinclude.m4 re PR other/79543 (Inappropriate "ld --version" checking) 2019-09-03 14:10:26 +00:00
aclocal.m4 Add `--with-toolexeclibdir=' configuration option 2020-01-24 11:24:25 +00:00
affinity-fmt.c re PR libgomp/93219 (unused return value in affinity-fmt.c) 2020-01-10 21:42:00 +01:00
affinity.c Update copyright years. 2020-01-01 12:51:42 +01:00
alloc.c Update copyright years. 2020-01-01 12:51:42 +01:00
atomic.c Update copyright years. 2020-01-01 12:51:42 +01:00
barrier.c Update copyright years. 2020-01-01 12:51:42 +01:00
ChangeLog Add xfails to libgomp tests target-{33,34}.c, target-link-1.c 2020-02-10 09:16:46 +01:00
ChangeLog.graphite
config.h.in GCN libgomp port 2019-11-13 12:38:04 +00:00
configure Skip plugin-{gcn,hsa} for (-m)x32 (PR bootstrap/93409) 2020-01-30 12:27:17 +01:00
configure.ac Add `--with-toolexeclibdir=' configuration option 2020-01-24 11:24:25 +00:00
configure.tgt musl: Fix invalid tls model in libgomp and libitm PR91938 2019-12-03 11:13:38 +00:00
critical.c Update copyright years. 2020-01-01 12:51:42 +01:00
env.c Update copyright years. 2020-01-01 12:51:42 +01:00
error.c Update copyright years. 2020-01-01 12:51:42 +01:00
fortran.c Update copyright years. 2020-01-01 12:51:42 +01:00
hashtab.h Update copyright years. 2020-01-01 12:51:42 +01:00
icv-device.c Update copyright years. 2020-01-01 12:51:42 +01:00
icv.c Update copyright years. 2020-01-01 12:51:42 +01:00
iter.c Update copyright years. 2020-01-01 12:51:42 +01:00
iter_ull.c Update copyright years. 2020-01-01 12:51:42 +01:00
libgomp-plugin.c Update copyright years. 2020-01-01 12:51:42 +01:00
libgomp-plugin.h OpenACC 'acc_get_property' cleanup 2020-01-10 23:24:36 +01:00
libgomp.h OpenACC 'acc_get_property' cleanup 2020-01-10 23:24:36 +01:00
libgomp.map Add OpenACC 2.6 `acc_get_property' support 2019-12-22 19:54:09 +00:00
libgomp.spec.in
libgomp.texi [OpenACC] bump version for 2.6 plus libgomp.texi update 2020-02-03 10:10:37 +01:00
libgomp_f.h.in Update copyright years. 2020-01-01 12:51:42 +01:00
libgomp_g.h Update copyright years. 2020-01-01 12:51:42 +01:00
lock.c Update copyright years. 2020-01-01 12:51:42 +01:00
loop.c Update copyright years. 2020-01-01 12:51:42 +01:00
loop_ull.c Update copyright years. 2020-01-01 12:51:42 +01:00
Makefile.am GCN libgomp port 2019-11-13 12:38:04 +00:00
Makefile.in Add `--with-toolexeclibdir=' configuration option 2020-01-24 11:24:25 +00:00
oacc-async.c Update copyright years. 2020-01-01 12:51:42 +01:00
oacc-cuda.c Update copyright years. 2020-01-01 12:51:42 +01:00
oacc-host.c OpenACC 'acc_get_property' cleanup 2020-01-10 23:24:36 +01:00
oacc-init.c Add acc_device_radeon to name_of_acc_device_t function 2020-01-29 15:52:58 +01:00
oacc-int.h Update copyright years. 2020-01-01 12:51:42 +01:00
oacc-mem.c Update copyright years. 2020-01-01 12:51:42 +01:00
oacc-parallel.c OpenACC – support "if" + "if_present" clauses with "host_data" 2020-01-10 16:08:41 +01:00
oacc-plugin.c Update copyright years. 2020-01-01 12:51:42 +01:00
oacc-plugin.h Update copyright years. 2020-01-01 12:51:42 +01:00
oacc-profiling.c Update copyright years. 2020-01-01 12:51:42 +01:00
oacc-target.c GCN libgomp port 2019-11-13 12:38:04 +00:00
omp.h.in Update copyright years. 2020-01-01 12:51:42 +01:00
omp_lib.f90.in Update copyright years. 2020-01-01 12:51:42 +01:00
omp_lib.h.in Update copyright years. 2020-01-01 12:51:42 +01:00
openacc.f90 [OpenACC] bump version for 2.6 plus libgomp.texi update 2020-02-03 10:10:37 +01:00
openacc.h Rename acc_device_gcn to acc_device_radeon 2020-01-17 18:11:52 +00:00
openacc_lib.h [OpenACC] bump version for 2.6 plus libgomp.texi update 2020-02-03 10:10:37 +01:00
ordered.c Update copyright years. 2020-01-01 12:51:42 +01:00
parallel.c Update copyright years. 2020-01-01 12:51:42 +01:00
priority_queue.c Update copyright years. 2020-01-01 12:51:42 +01:00
priority_queue.h Update copyright years. 2020-01-01 12:51:42 +01:00
sections.c Update copyright years. 2020-01-01 12:51:42 +01:00
secure_getenv.h Update copyright years. 2020-01-01 12:51:42 +01:00
single.c Update copyright years. 2020-01-01 12:51:42 +01:00
splay-tree.c Update copyright years. 2020-01-01 12:51:42 +01:00
splay-tree.h Update copyright years. 2020-01-01 12:51:42 +01:00
target.c openmp: ignore nowait if async execution is unsupported [PR93481] 2020-02-13 10:18:31 +01:00
task.c Update copyright years. 2020-01-01 12:51:42 +01:00
taskloop.c Update copyright years. 2020-01-01 12:51:42 +01:00
team.c Update copyright years. 2020-01-01 12:51:42 +01:00
teams.c Update copyright years. 2020-01-01 12:51:42 +01:00
work.c Update copyright years. 2020-01-01 12:51:42 +01:00