diff options
author | Tobias Burnus <tburnus@baylibre.com> | 2024-02-21 11:31:43 +0100 |
---|---|---|
committer | Tobias Burnus <tburnus@baylibre.com> | 2024-02-21 11:31:43 +0100 |
commit | 703d14132e202ed2ab787cfdb37a726fa654455a (patch) | |
tree | d8712b058290abc7159b03969aa28bcf82090585 /gcc | |
parent | 51c0ff6f503323908d3326050274fc57899300bd (diff) | |
download | gcc-703d14132e202ed2ab787cfdb37a726fa654455a.zip gcc-703d14132e202ed2ab787cfdb37a726fa654455a.tar.gz gcc-703d14132e202ed2ab787cfdb37a726fa654455a.tar.bz2 |
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.
The device-compiler part (nvptx_omp_device_kind_arch_isa) uses
TARGET_ABI64 such that nvptx64 is only defined with -m64.
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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/nvptx/gen-omp-device-properties.sh | 2 | ||||
-rw-r--r-- | gcc/config/nvptx/nvptx.cc | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/gcc/config/nvptx/gen-omp-device-properties.sh b/gcc/config/nvptx/gen-omp-device-properties.sh index 95c754a..3666f97 100644 --- a/gcc/config/nvptx/gen-omp-device-properties.sh +++ b/gcc/config/nvptx/gen-omp-device-properties.sh @@ -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 diff --git a/gcc/config/nvptx/nvptx.cc b/gcc/config/nvptx/nvptx.cc index 9363d3e..2a8f713 100644 --- a/gcc/config/nvptx/nvptx.cc +++ b/gcc/config/nvptx/nvptx.cc @@ -6403,7 +6403,8 @@ 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 + || (TARGET_ABI64 && strcmp (name, "nvptx64") == 0)); case omp_device_isa: #define NVPTX_SM(XX, SEP) \ { \ |