OpenMP/nvptx: support 'arch(nvptx64)' as context selector
The main 'arch' context selector for nvptx is, well, 'nvptx';
however, as 'nvptx64' is used as by LLVM, it makes sense
to support it as well.
Note that LLVM has: "The triple architecture can be one of
``nvptx`` (32-bit PTX) or ``nvptx64`` (64-bit PTX)."
GCC effectively only supports the 64bit variant (at least for
offloading). Thus, GCC's 'nvptx' is not quite the same as LLVM's.
gcc/ChangeLog:
* config/nvptx/gen-omp-device-properties.sh: Add 'nvptx64' to arch.
* config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Likewise.
libgomp/ChangeLog:
* libgomp.texi (OpenMP Context Selectors): Add 'nvptx64' as additional
'arch' value for nvptx.
gcc/config/nvptx/gen-omp-device-properties.sh | 2 +-
gcc/config/nvptx/nvptx.cc | 2 +-
libgomp/libgomp.texi | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
@@ -23,7 +23,7 @@ nvptx_sm_def="$1/nvptx-sm.def"
sms=$(grep ^NVPTX_SM $nvptx_sm_def | sed 's/.*(//;s/,.*//')
echo kind: gpu
-echo arch: nvptx
+echo arch: nvptx nvptx64
isa=""
for sm in $sms; do
@@ -6403,7 +6403,7 @@ nvptx_omp_device_kind_arch_isa (enum omp_device_kind_arch_isa trait,
case omp_device_kind:
return strcmp (name, "gpu") == 0;
case omp_device_arch:
- return strcmp (name, "nvptx") == 0;
+ return strcmp (name, "nvptx") == 0 || strcmp (name, "nvptx64") == 0;
case omp_device_isa:
#define NVPTX_SM(XX, SEP) \
{ \
@@ -6193,7 +6193,7 @@ on more architectures, GCC currently does not match any @code{arch} or
@item @code{amdgcn}, @code{gcn}
@tab See @code{-march=} in ``AMD GCN Options''@footnote{Additionally,
@code{gfx803} is supported as an alias for @code{fiji}.}
-@item @code{nvptx}
+@item @code{nvptx}, @code{nvptx64}
@tab See @code{-march=} in ``Nvidia PTX Options''
@end multitable