Author: erichkeane Date: Thu Feb 8 15:16:00 2018 New Revision: 324675 URL: http://llvm.org/viewvc/llvm-project?rev=324675&view=rev Log: Add NVPTX Support to ValidCPUList (enabling march notes)
A followup to: https://reviews.llvm.org/D42978 This patch adds NVPTX support for enabling the march notes. Differential Revision: https://reviews.llvm.org/D43045 Modified: cfe/trunk/include/clang/Basic/Cuda.h cfe/trunk/lib/Basic/Cuda.cpp cfe/trunk/lib/Basic/Targets/NVPTX.cpp cfe/trunk/lib/Basic/Targets/NVPTX.h Modified: cfe/trunk/include/clang/Basic/Cuda.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Cuda.h?rev=324675&r1=324674&r2=324675&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/Cuda.h (original) +++ cfe/trunk/include/clang/Basic/Cuda.h Thu Feb 8 15:16:00 2018 @@ -46,6 +46,7 @@ enum class CudaArch { SM_62, SM_70, SM_72, + LAST, }; const char *CudaArchToString(CudaArch A); Modified: cfe/trunk/lib/Basic/Cuda.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Cuda.cpp?rev=324675&r1=324674&r2=324675&view=diff ============================================================================== --- cfe/trunk/lib/Basic/Cuda.cpp (original) +++ cfe/trunk/lib/Basic/Cuda.cpp Thu Feb 8 15:16:00 2018 @@ -26,6 +26,8 @@ const char *CudaVersionToString(CudaVers const char *CudaArchToString(CudaArch A) { switch (A) { + case CudaArch::LAST: + break; case CudaArch::UNKNOWN: return "unknown"; case CudaArch::SM_20: @@ -133,6 +135,8 @@ CudaVirtualArch StringToCudaVirtualArch( CudaVirtualArch VirtualArchForCudaArch(CudaArch A) { switch (A) { + case CudaArch::LAST: + break; case CudaArch::UNKNOWN: return CudaVirtualArch::UNKNOWN; case CudaArch::SM_20: @@ -168,6 +172,8 @@ CudaVirtualArch VirtualArchForCudaArch(C CudaVersion MinVersionForCudaArch(CudaArch A) { switch (A) { + case CudaArch::LAST: + break; case CudaArch::UNKNOWN: return CudaVersion::UNKNOWN; case CudaArch::SM_20: Modified: cfe/trunk/lib/Basic/Targets/NVPTX.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/NVPTX.cpp?rev=324675&r1=324674&r2=324675&view=diff ============================================================================== --- cfe/trunk/lib/Basic/Targets/NVPTX.cpp (original) +++ cfe/trunk/lib/Basic/Targets/NVPTX.cpp Thu Feb 8 15:16:00 2018 @@ -157,6 +157,8 @@ void NVPTXTargetInfo::getTargetDefines(c // Set __CUDA_ARCH__ for the GPU specified. std::string CUDAArchCode = [this] { switch (GPU) { + case CudaArch::LAST: + break; case CudaArch::UNKNOWN: assert(false && "No GPU arch when compiling CUDA device code."); return ""; Modified: cfe/trunk/lib/Basic/Targets/NVPTX.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/NVPTX.h?rev=324675&r1=324674&r2=324675&view=diff ============================================================================== --- cfe/trunk/lib/Basic/Targets/NVPTX.h (original) +++ cfe/trunk/lib/Basic/Targets/NVPTX.h Thu Feb 8 15:16:00 2018 @@ -98,6 +98,12 @@ public: return StringToCudaArch(Name) != CudaArch::UNKNOWN; } + void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override { + for (int i = static_cast<int>(CudaArch::SM_20); + i < static_cast<int>(CudaArch::LAST); ++i) + Values.emplace_back(CudaArchToString(static_cast<CudaArch>(i))); + } + bool setCPU(const std::string &Name) override { GPU = StringToCudaArch(Name); return GPU != CudaArch::UNKNOWN; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits