aboutsummaryrefslogtreecommitdiff
path: root/libgomp/libgomp.texi
diff options
context:
space:
mode:
authorTobias Burnus <tobias@codesourcery.com>2023-10-12 21:00:58 +0200
committerTobias Burnus <tobias@codesourcery.com>2023-10-12 21:00:58 +0200
commit8bd11fa4ffcf8bceb6511a9d6918c90a34b705b5 (patch)
tree1373c17bf865ded33cd46b23659cdeaa593727e8 /libgomp/libgomp.texi
parentf150717bd928df13642d31f010573a329b34689c (diff)
downloadgcc-8bd11fa4ffcf8bceb6511a9d6918c90a34b705b5.zip
gcc-8bd11fa4ffcf8bceb6511a9d6918c90a34b705b5.tar.gz
gcc-8bd11fa4ffcf8bceb6511a9d6918c90a34b705b5.tar.bz2
libgomp.texi: Clarify OMP_TARGET_OFFLOAD=mandatory
In OpenMP 5.0/5.1, the semantic of OMP_TARGET_OFFLOAD=mandatory was insufficiently specified; 5.2 clarified this with extensions/clarifications (omp_initial_device, omp_invalid_device, "conforming device number"). GCC's implementation matches OpenMP 5.2. libgomp/ChangeLog: * libgomp.texi (OMP_DEFAULT_DEVICE): Update spec ref; add @ref to OMP_TARGET_OFFLOAD. (OMP_TARGET_OFFLOAD): Update spec ref; add @ref to OMP_DEFAULT_DEVICE; clarify MANDATORY behavior.
Diffstat (limited to 'libgomp/libgomp.texi')
-rw-r--r--libgomp/libgomp.texi21
1 files changed, 16 insertions, 5 deletions
diff --git a/libgomp/libgomp.texi b/libgomp/libgomp.texi
index ba8e901..6a77700 100644
--- a/libgomp/libgomp.texi
+++ b/libgomp/libgomp.texi
@@ -2831,9 +2831,10 @@ device number 0 will be used.
@item @emph{See also}:
@ref{omp_get_default_device}, @ref{omp_set_default_device},
+@ref{OMP_TARGET_OFFLOAD}
@item @emph{Reference}:
-@uref{https://www.openmp.org, OpenMP specification v4.5}, Section 4.13
+@uref{https://www.openmp.org, OpenMP specification v5.2}, Section 21.2.7
@end table
@@ -3133,15 +3134,25 @@ variable can be set to one of three values - @code{MANDATORY}, @code{DISABLED}
or @code{DEFAULT}.
If set to @code{MANDATORY}, the program will terminate with an error if
-the offload device is not present or is not supported. If set to
-@code{DISABLED}, then offloading is disabled and all code will run on the
-host. If set to @code{DEFAULT}, the program will try offloading to the
+any device construct or device memory routine uses a device that is unavailable
+or not supported by the implementation, or uses a non-conforming device number.
+If set to @code{DISABLED}, then offloading is disabled and all code will run on
+the host. If set to @code{DEFAULT}, the program will try offloading to the
device first, then fall back to running code on the host if it cannot.
If undefined, then the program will behave as if @code{DEFAULT} was set.
+Note: Even with @code{MANDATORY}, there will be no run-time termination when
+the device number in a @code{device} clause or argument to a device memory
+routine is for host, which includes using the device number in the
+@var{default-device-var} ICV. However, the initial value of
+the @var{default-device-var} ICV is affected by @code{MANDATORY}.
+
+@item @emph{See also}:
+@ref{OMP_DEFAULT_DEVICE}
+
@item @emph{Reference}:
-@uref{https://www.openmp.org, OpenMP specification v5.0}, Section 6.17
+@uref{https://www.openmp.org, OpenMP specification v5.2}, Section 21.2.8
@end table