Author: Benjamin Kramer Date: 2020-07-20T16:54:30+02:00 New Revision: f3f1ce4fa9f49c9d862fcc873eed92fee02b0685
URL: https://github.com/llvm/llvm-project/commit/f3f1ce4fa9f49c9d862fcc873eed92fee02b0685 DIFF: https://github.com/llvm/llvm-project/commit/f3f1ce4fa9f49c9d862fcc873eed92fee02b0685.diff LOG: [Driver] Promote SmallSet of enum to a bitset. NFCI. Added: Modified: clang/lib/Driver/ToolChains/Cuda.cpp clang/lib/Driver/ToolChains/Cuda.h clang/lib/Driver/ToolChains/ROCm.h Removed: ################################################################################ diff --git a/clang/lib/Driver/ToolChains/Cuda.cpp b/clang/lib/Driver/ToolChains/Cuda.cpp index 110a0bca9bc1..d7933534a5d3 100644 --- a/clang/lib/Driver/ToolChains/Cuda.cpp +++ b/clang/lib/Driver/ToolChains/Cuda.cpp @@ -259,13 +259,13 @@ void CudaInstallationDetector::AddCudaIncludeArgs( void CudaInstallationDetector::CheckCudaVersionSupportsArch( CudaArch Arch) const { if (Arch == CudaArch::UNKNOWN || Version == CudaVersion::UNKNOWN || - ArchsWithBadVersion.count(Arch) > 0) + ArchsWithBadVersion[(int)Arch]) return; auto MinVersion = MinVersionForCudaArch(Arch); auto MaxVersion = MaxVersionForCudaArch(Arch); if (Version < MinVersion || Version > MaxVersion) { - ArchsWithBadVersion.insert(Arch); + ArchsWithBadVersion[(int)Arch] = true; D.Diag(diag::err_drv_cuda_version_unsupported) << CudaArchToString(Arch) << CudaVersionToString(MinVersion) << CudaVersionToString(MaxVersion) << InstallPath diff --git a/clang/lib/Driver/ToolChains/Cuda.h b/clang/lib/Driver/ToolChains/Cuda.h index 873eb7338a30..6afc29f7acee 100644 --- a/clang/lib/Driver/ToolChains/Cuda.h +++ b/clang/lib/Driver/ToolChains/Cuda.h @@ -15,9 +15,9 @@ #include "clang/Driver/Tool.h" #include "clang/Driver/ToolChain.h" #include "llvm/ADT/Optional.h" -#include "llvm/ADT/SmallSet.h" #include "llvm/Support/Compiler.h" #include "llvm/Support/VersionTuple.h" +#include <bitset> #include <set> #include <vector> @@ -41,7 +41,7 @@ class CudaInstallationDetector { // CUDA architectures for which we have raised an error in // CheckCudaVersionSupportsArch. - mutable llvm::SmallSet<CudaArch, 4> ArchsWithBadVersion; + mutable std::bitset<(int)CudaArch::LAST> ArchsWithBadVersion; public: CudaInstallationDetector(const Driver &D, const llvm::Triple &HostTriple, diff --git a/clang/lib/Driver/ToolChains/ROCm.h b/clang/lib/Driver/ToolChains/ROCm.h index 962c72fedfe0..27c7d8b0ee54 100644 --- a/clang/lib/Driver/ToolChains/ROCm.h +++ b/clang/lib/Driver/ToolChains/ROCm.h @@ -13,7 +13,6 @@ #include "clang/Basic/LLVM.h" #include "clang/Driver/Driver.h" #include "clang/Driver/Options.h" -#include "llvm/ADT/SmallSet.h" #include "llvm/ADT/SmallString.h" #include "llvm/ADT/StringMap.h" #include "llvm/ADT/Triple.h" @@ -103,10 +102,6 @@ class RocmInstallationDetector { CorrectlyRoundedSqrt.isValid(); } - // GPU architectures for which we have raised an error in - // CheckRocmVersionSupportsArch. - mutable llvm::SmallSet<CudaArch, 4> ArchsWithBadVersion; - void scanLibDevicePath(llvm::StringRef Path); void ParseHIPVersionFile(llvm::StringRef V); SmallVector<Candidate, 4> getInstallationPathCandidates(); @@ -124,12 +119,6 @@ class RocmInstallationDetector { bool DAZ, bool FiniteOnly, bool UnsafeMathOpt, bool FastRelaxedMath, bool CorrectSqrt) const; - /// Emit an error if Version does not support the given Arch. - /// - /// If either Version or Arch is unknown, does not emit an error. Emits at - /// most one error per Arch. - void CheckRocmVersionSupportsArch(CudaArch Arch) const; - /// Check whether we detected a valid HIP runtime. bool hasHIPRuntime() const { return HasHIPRuntime; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits