Author: Joseph Huber Date: 2022-05-13T14:38:35-04:00 New Revision: 002a63f937d91c0aad192f2d4997317fb277b32a
URL: https://github.com/llvm/llvm-project/commit/002a63f937d91c0aad192f2d4997317fb277b32a DIFF: https://github.com/llvm/llvm-project/commit/002a63f937d91c0aad192f2d4997317fb277b32a.diff LOG: [OpenMP] Add `__CUDA_ARCH__` definition when offloading with OpenMP Currently we define the `__CUDA_ARCH__` macro only in CUDA mode. This patch allows us to use this macro in OpenMP-offloading mode when targeting NVPTX. Reviewed By: tra, tianshilei1992 Differential Revision: https://reviews.llvm.org/D125256 Added: Modified: clang/lib/Basic/Targets/NVPTX.cpp clang/test/OpenMP/driver-openmp-target.c Removed: ################################################################################ diff --git a/clang/lib/Basic/Targets/NVPTX.cpp b/clang/lib/Basic/Targets/NVPTX.cpp index ffd69983a0be..9dd60adb00fb 100644 --- a/clang/lib/Basic/Targets/NVPTX.cpp +++ b/clang/lib/Basic/Targets/NVPTX.cpp @@ -179,7 +179,7 @@ void NVPTXTargetInfo::getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const { Builder.defineMacro("__PTX__"); Builder.defineMacro("__NVPTX__"); - if (Opts.CUDAIsDevice) { + if (Opts.CUDAIsDevice || Opts.OpenMPIsDevice) { // Set __CUDA_ARCH__ for the GPU specified. std::string CUDAArchCode = [this] { switch (GPU) { diff --git a/clang/test/OpenMP/driver-openmp-target.c b/clang/test/OpenMP/driver-openmp-target.c index ae8430a953e7..8809b54df23b 100644 --- a/clang/test/OpenMP/driver-openmp-target.c +++ b/clang/test/OpenMP/driver-openmp-target.c @@ -1,4 +1,8 @@ // REQUIRES: x86-registered-target +// REQUIRES: nvptx-registered-target // REQUIRES: clang-target-64-bits + // RUN: %clang %s -c -E -dM -fopenmp=libomp -fopenmp-version=45 -fopenmp-targets=x86_64-unknown-unknown -o - | FileCheck --check-prefix=CHECK-45-VERSION %s // CHECK-45-VERSION: #define _OPENMP 201511 +// RUN: %clang %s -c -E -dM -fopenmp=libomp -nogpulib --offload-arch=sm_70 --offload-device-only -o - | FileCheck --check-prefix=CHECK-CUDA-ARCH %s +// CHECK-CUDA-ARCH: #define __CUDA_ARCH__ 700 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits