gcc/libgomp/testsuite
Andrew Stubbs cdddaf7fdf amdgcn: libgomp plugin USM implementation
Implement the Unified Shared Memory API calls in the GCN plugin.

The allocate and free are pretty straight-forward because all "target" memory
allocations are compatible with USM, on the right hardware.  However, there's
no known way to check what memory region was used, after the fact, so we use a
splay tree to record allocations so we can answer "is_usm_ptr" later.

libgomp/ChangeLog:

	* plugin/plugin-gcn.c (struct usm_splay_tree_key_s): New.
	(usm_splay_compare): New.
	(splay_tree_prefix): New.
	(GOMP_OFFLOAD_usm_alloc): New.
	(GOMP_OFFLOAD_usm_free): New.
	(GOMP_OFFLOAD_is_usm_ptr): New.
	(GOMP_OFFLOAD_supported_features): Move into the OpenMP API fold.
	Add GOMP_REQUIRES_UNIFIED_ADDRESS and
	GOMP_REQUIRES_UNIFIED_SHARED_MEMORY.
	(gomp_fatal): New.
	(splay_tree_c): New.
	* testsuite/lib/libgomp.exp (check_effective_target_omp_usm): New.
	* testsuite/libgomp.c++/usm-1.C: Use dg-require-effective-target.
	* testsuite/libgomp.c-c++-common/requires-1.c: Likewise.
	* testsuite/libgomp.c/usm-1.c: Likewise.
	* testsuite/libgomp.c/usm-2.c: Likewise.
	* testsuite/libgomp.c/usm-3.c: Likewise.
	* testsuite/libgomp.c/usm-4.c: Likewise.
	* testsuite/libgomp.c/usm-5.c: Likewise.
	* testsuite/libgomp.c/usm-6.c: Likewise.
2022-06-27 17:28:04 +01:00
..
config Update copyright years. 2021-01-04 10:26:59 +01:00
lib amdgcn: libgomp plugin USM implementation 2022-06-27 17:28:04 +01:00
libgomp.c amdgcn: libgomp plugin USM implementation 2022-06-27 17:28:04 +01:00
libgomp.c++ amdgcn: libgomp plugin USM implementation 2022-06-27 17:28:04 +01:00
libgomp.c-c++-common amdgcn: libgomp plugin USM implementation 2022-06-27 17:28:04 +01:00
libgomp.fortran OpenMP: Handle descriptors in target's firstprivate [PR104949] 2022-05-12 14:49:29 +02:00
libgomp.graphite Update copyright years. 2021-01-04 10:26:59 +01:00
libgomp.oacc-c Add support for gang local storage allocation in shared memory 2021-04-20 11:49:36 -07:00
libgomp.oacc-c++ [og11] Rework indirect struct handling for OpenACC in gimplify.c 2021-06-02 03:36:25 -07:00
libgomp.oacc-c-c++-common openacc: Adjust test expectations to new "kernels" handling 2021-11-17 09:10:55 +01:00
libgomp.oacc-fortran fortran: OpenMP/OpenACC array mapping alignment fix (PR90030) 2021-12-08 22:17:27 +08:00
Makefile.am libgomp/test: Remove a build sysroot fix regression 2020-04-06 23:32:45 +01:00
Makefile.in libgomp: Regenerate configure files with automake 1.15.1 2020-10-02 12:08:47 +02:00
libgomp-site-extra.exp.in libgomp/test: Remove a build sysroot fix regression 2020-04-06 23:32:45 +01:00
libgomp-test-support.exp.in libgomp/test: Remove a build sysroot fix regression 2020-04-06 23:32:45 +01:00