diff mbox series

libgomp.texi: Clarify that no other OpenMP context selectors are implemented

Message ID 1d94d208-6e24-4ab7-a204-a6a152abd496@codesourcery.com
State New
Headers show
Series libgomp.texi: Clarify that no other OpenMP context selectors are implemented | expand

Commit Message

Tobias Burnus Oct. 4, 2023, 11:08 a.m. UTC
I got confused myself when reading

https://gcc.gnu.org/onlinedocs/libgomp/OpenMP-Context-Selectors.html

Especially with regards to other platforms like PowerPC.

It turned out that the list is complete, kind of. For 'arch' and 'isa'
those are the only ones - if we want to have more, it has to be
implemented (→ cf. PR105640).

For 'kind': The host compiler always matches 'kind=host'; this also
applies to AMD GCN and Nvidia PTX - when compiled as stand-alone
compiler. Those two also match 'kind=gpu' (both as stand-alone
compiler(*) and for offloading).

The attached documentation patch attempts to clarify this for both users
– and for implementers, for the latter, there is also a comment in the
.texi with more details.

Comments, suggestions, remarks?

Tobias

(*) This could be changed by checking for "#ifndef ACCEL_COMPILER" in
gcc/config/{gcn/nvptx}/ but that does not seem to be worthwhile.
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955

Comments

Jakub Jelinek Oct. 4, 2023, 11:17 a.m. UTC | #1
On Wed, Oct 04, 2023 at 01:08:15PM +0200, Tobias Burnus wrote:
> I got confused myself when reading
> 
> https://gcc.gnu.org/onlinedocs/libgomp/OpenMP-Context-Selectors.html
> 
> Especially with regards to other platforms like PowerPC.
> 
> It turned out that the list is complete, kind of. For 'arch' and 'isa'
> those are the only ones - if we want to have more, it has to be
> implemented (→ cf. PR105640).
> 
> For 'kind': The host compiler always matches 'kind=host'; this also
> applies to AMD GCN and Nvidia PTX - when compiled as stand-alone
> compiler. Those two also match 'kind=gpu' (both as stand-alone
> compiler(*) and for offloading).
> 
> The attached documentation patch attempts to clarify this for both users
> – and for implementers, for the latter, there is also a comment in the
> .texi with more details.
> 
> Comments, suggestions, remarks?
> 
> Tobias
> 
> (*) This could be changed by checking for "#ifndef ACCEL_COMPILER" in
> gcc/config/{gcn/nvptx}/ but that does not seem to be worthwhile.
> -----------------
> Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955

> libgomp.texi: Clarify that no other OpenMP context selectors are implemented
> 
> libgomp/ChangeLog:
> 
> 	* libgomp.texi (OpenMP Context Selectors): Clarify 'kind' trait
> 	and that other target archs have no 'arch'/'isa' traits implemented.

LGTM.

	Jakub
diff mbox series

Patch

libgomp.texi: Clarify that no other OpenMP context selectors are implemented

libgomp/ChangeLog:

	* libgomp.texi (OpenMP Context Selectors): Clarify 'kind' trait
	and that other target archs have no 'arch'/'isa' traits implemented.

diff --git a/libgomp/libgomp.texi b/libgomp/libgomp.texi
index f21557c3c52..d24f590fd84 100644
--- a/libgomp/libgomp.texi
+++ b/libgomp/libgomp.texi
@@ -4982,18 +4982,27 @@  smaller number.  On non-host devices, the value of the
 
 @code{vendor} is always @code{gnu}. References are to the GCC manual.
 
-@multitable @columnfractions .60 .10 .25
-@headitem @code{arch} @tab @code{kind} @tab @code{isa}
+@c NOTE: Only the following selectors have been implemented. To add
+@c additional traits for target architecture, TARGET_OMP_DEVICE_KIND_ARCH_ISA
+@c has to be implemented; cf. also PR target/105640.
+@c For offload devices, add *additionally* gcc/config/*/t-omp-device.
+
+For the host compiler, @code{kind} always matches @code{host}; for the
+offloading architectures AMD GCN and Nvidia PTX, @code{kind} always matches
+@code{gpu}.  For the x86 family of computers, AMD GCN and Nvidia PTX
+the following traits are supported in addition; while OpenMP is supported
+on more architectures, GCC currently does not match any @code{arch} or
+@code{isa} traits for those.
+
+@multitable @columnfractions .65 .30
+@headitem @code{arch} @tab @code{isa}
 @item @code{x86}, @code{x86_64}, @code{i386}, @code{i486},
       @code{i586}, @code{i686}, @code{ia32}
-      @tab @code{host}
       @tab See @code{-m...} flags in ``x86 Options'' (without @code{-m})
 @item @code{amdgcn}, @code{gcn}
-      @tab @code{gpu}
       @tab See @code{-march=} in ``AMD GCN Options''@footnote{Additionally,
       @code{gfx803} is supported as an alias for @code{fiji}.}
 @item @code{nvptx}
-      @tab @code{gpu}
       @tab See @code{-march=} in ``Nvidia PTX Options''
 @end multitable