This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGd2ac0069a21b: [Clang] Only emit CUDA version warnings when creating the CUDA toolchain (authored by jhuber6).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D155606/new/ https://reviews.llvm.org/D155606 Files: clang/lib/Driver/Driver.cpp clang/lib/Driver/ToolChains/Cuda.cpp clang/test/Driver/cuda-version-check.cu Index: clang/test/Driver/cuda-version-check.cu =================================================================== --- clang/test/Driver/cuda-version-check.cu +++ clang/test/Driver/cuda-version-check.cu @@ -73,3 +73,11 @@ // UNKNOWN_VERSION: CUDA version is newer than the latest{{.*}} supported version // UNKNOWN_VERSION_CXX-NOT: unknown CUDA version + +// Check to make sure we do not emit these warnings for OpenMP or cross-compilation. +// RUN: %clang --target=x86_64-linux -v -### -fopenmp -nogpulib --offload-arch=sm_60 --cuda-path=%S/Inputs/CUDA-new/usr/local/cuda 2>&1 -x c %s | \ +// RUN: FileCheck %s --check-prefix=VERSION +// RUN: %clang --target=nvptx64-nvidia-cuda -v -### -nogpulib -march=sm_60 --cuda-path=%S/Inputs/CUDA-new/usr/local/cuda 2>&1 -x c %s | \ +// RUN: FileCheck %s --check-prefix=VERSION +// VERSION-NOT: CUDA version is newer than the latest{{.*}} supported version + Index: clang/lib/Driver/ToolChains/Cuda.cpp =================================================================== --- clang/lib/Driver/ToolChains/Cuda.cpp +++ clang/lib/Driver/ToolChains/Cuda.cpp @@ -704,10 +704,8 @@ const ArgList &Args, bool Freestanding = false) : ToolChain(D, Triple, Args), CudaInstallation(D, HostTriple, Args), Freestanding(Freestanding) { - if (CudaInstallation.isValid()) { - CudaInstallation.WarnIfUnsupportedVersion(); + if (CudaInstallation.isValid()) getProgramPaths().push_back(std::string(CudaInstallation.getBinPath())); - } // Lookup binaries into the driver directory, this is used to // discover the 'nvptx-arch' executable. getProgramPaths().push_back(getDriver().Dir); Index: clang/lib/Driver/Driver.cpp =================================================================== --- clang/lib/Driver/Driver.cpp +++ clang/lib/Driver/Driver.cpp @@ -810,6 +810,12 @@ if (!CudaTC) { CudaTC = std::make_unique<toolchains::CudaToolChain>( *this, *CudaTriple, *HostTC, C.getInputArgs()); + + // Emit a warning if the detected CUDA version is too new. + CudaInstallationDetector &CudaInstallation = + static_cast<toolchains::CudaToolChain &>(*CudaTC).CudaInstallation; + if (CudaInstallation.isValid()) + CudaInstallation.WarnIfUnsupportedVersion(); } C.addOffloadDeviceToolChain(CudaTC.get(), OFK); } else if (IsHIP) {
Index: clang/test/Driver/cuda-version-check.cu =================================================================== --- clang/test/Driver/cuda-version-check.cu +++ clang/test/Driver/cuda-version-check.cu @@ -73,3 +73,11 @@ // UNKNOWN_VERSION: CUDA version is newer than the latest{{.*}} supported version // UNKNOWN_VERSION_CXX-NOT: unknown CUDA version + +// Check to make sure we do not emit these warnings for OpenMP or cross-compilation. +// RUN: %clang --target=x86_64-linux -v -### -fopenmp -nogpulib --offload-arch=sm_60 --cuda-path=%S/Inputs/CUDA-new/usr/local/cuda 2>&1 -x c %s | \ +// RUN: FileCheck %s --check-prefix=VERSION +// RUN: %clang --target=nvptx64-nvidia-cuda -v -### -nogpulib -march=sm_60 --cuda-path=%S/Inputs/CUDA-new/usr/local/cuda 2>&1 -x c %s | \ +// RUN: FileCheck %s --check-prefix=VERSION +// VERSION-NOT: CUDA version is newer than the latest{{.*}} supported version + Index: clang/lib/Driver/ToolChains/Cuda.cpp =================================================================== --- clang/lib/Driver/ToolChains/Cuda.cpp +++ clang/lib/Driver/ToolChains/Cuda.cpp @@ -704,10 +704,8 @@ const ArgList &Args, bool Freestanding = false) : ToolChain(D, Triple, Args), CudaInstallation(D, HostTriple, Args), Freestanding(Freestanding) { - if (CudaInstallation.isValid()) { - CudaInstallation.WarnIfUnsupportedVersion(); + if (CudaInstallation.isValid()) getProgramPaths().push_back(std::string(CudaInstallation.getBinPath())); - } // Lookup binaries into the driver directory, this is used to // discover the 'nvptx-arch' executable. getProgramPaths().push_back(getDriver().Dir); Index: clang/lib/Driver/Driver.cpp =================================================================== --- clang/lib/Driver/Driver.cpp +++ clang/lib/Driver/Driver.cpp @@ -810,6 +810,12 @@ if (!CudaTC) { CudaTC = std::make_unique<toolchains::CudaToolChain>( *this, *CudaTriple, *HostTC, C.getInputArgs()); + + // Emit a warning if the detected CUDA version is too new. + CudaInstallationDetector &CudaInstallation = + static_cast<toolchains::CudaToolChain &>(*CudaTC).CudaInstallation; + if (CudaInstallation.isValid()) + CudaInstallation.WarnIfUnsupportedVersion(); } C.addOffloadDeviceToolChain(CudaTC.get(), OFK); } else if (IsHIP) {
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits