]> git.ipfire.org Git - thirdparty/gcc.git/commit
OpenMP: Add omp_default_device named constant [PR119677]
authorTobias Burnus <tburnus@baylibre.com>
Wed, 12 Nov 2025 09:18:18 +0000 (10:18 +0100)
committerTobias Burnus <tburnus@baylibre.com>
Wed, 12 Nov 2025 09:18:18 +0000 (10:18 +0100)
commit5da963d988e8ea3a13bd8dca87c6cec943af7b56
tree7659b2d520288a14ff5fe176bc18839cdb13c391
parent1fa5dd8f9862c3314b4499c944906424d7a5a8e7
OpenMP: Add omp_default_device named constant [PR119677]

OpenMP TR 14 (OpenMP 6.1) adds omp_default_device < -1 as
named constant alongside omp_initial_device and omp_default_device.

GCC supports it already internally via GOMP_DEVICE_DEFAULT_OMP_61,
but this patch now adds the omp_default_device enum/PARAMETER to
omp.h / omp_lib.

Note that PR119677 requests some cleanups, which still have to be
done.

PR libgomp/119677

gcc/fortran/ChangeLog:

* intrinsic.texi (OpenMP Modules): Add omp_default_device.
* openmp.cc (gfc_resolve_omp_context_selector): Accept
omp_default_device as conforming device number.

libgomp/ChangeLog:

* omp.h.in (omp_default_device): New enum value.
* omp_lib.f90.in: New parameter.
* omp_lib.h.in: Likewise
* target.c (gomp_get_default_device): New. Split off from ...
(resolve_device): ... here; call it.
(omp_target_alloc, omp_target_free, omp_target_is_present,
omp_target_memcpy_check, omp_target_memset, omp_target_memset_async,
omp_target_associate_ptr, omp_get_mapped_ptr,
omp_target_is_accessible, omp_pause_resource,
omp_get_uid_from_device): Handle omp_default_device.
* testsuite/libgomp.c/device_uid.c: Likewise.
* testsuite/libgomp.fortran/device_uid.f90: Likewise.
* testsuite/libgomp.c-c++-common/omp-default-device.c: New test.
* testsuite/libgomp.fortran/omp-default-device.f90: New test.
gcc/fortran/intrinsic.texi
gcc/fortran/openmp.cc
libgomp/omp.h.in
libgomp/omp_lib.f90.in
libgomp/omp_lib.h.in
libgomp/target.c
libgomp/testsuite/libgomp.c-c++-common/omp-default-device.c [new file with mode: 0644]
libgomp/testsuite/libgomp.c/device_uid.c
libgomp/testsuite/libgomp.fortran/device_uid.f90
libgomp/testsuite/libgomp.fortran/omp-default-device.f90 [new file with mode: 0644]