From 5f76154960a51843d2e49c9ae3481378e09e61ef Mon Sep 17 00:00:00 2001 From: Artem Belevich Date: Tue, 24 Apr 2018 18:23:19 +0000 Subject: [PATCH] [CUDA] Enable CUDA compilation with CUDA-9.2 Differential Revision: https://reviews.llvm.org/D45827 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@330753 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/Cuda.h | 3 ++- lib/Basic/Cuda.cpp | 2 ++ lib/Driver/ToolChains/Cuda.cpp | 2 ++ lib/Headers/__clang_cuda_runtime_wrapper.h | 7 ++++++- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/clang/Basic/Cuda.h b/include/clang/Basic/Cuda.h index 9981cf92fc..24159e160f 100644 --- a/include/clang/Basic/Cuda.h +++ b/include/clang/Basic/Cuda.h @@ -23,7 +23,8 @@ enum class CudaVersion { CUDA_80, CUDA_90, CUDA_91, - LATEST = CUDA_91, + CUDA_92, + LATEST = CUDA_92, }; const char *CudaVersionToString(CudaVersion V); diff --git a/lib/Basic/Cuda.cpp b/lib/Basic/Cuda.cpp index 970c060c0b..dc7e61c02b 100644 --- a/lib/Basic/Cuda.cpp +++ b/lib/Basic/Cuda.cpp @@ -20,6 +20,8 @@ const char *CudaVersionToString(CudaVersion V) { return "9.0"; case CudaVersion::CUDA_91: return "9.1"; + case CudaVersion::CUDA_92: + return "9.2"; } llvm_unreachable("invalid enum"); } diff --git a/lib/Driver/ToolChains/Cuda.cpp b/lib/Driver/ToolChains/Cuda.cpp index fdd62fec39..3978cb2742 100644 --- a/lib/Driver/ToolChains/Cuda.cpp +++ b/lib/Driver/ToolChains/Cuda.cpp @@ -57,6 +57,8 @@ static CudaVersion ParseCudaVersionFile(llvm::StringRef V) { return CudaVersion::CUDA_90; if (Major == 9 && Minor == 1) return CudaVersion::CUDA_91; + if (Major == 9 && Minor == 2) + return CudaVersion::CUDA_92; return CudaVersion::UNKNOWN; } diff --git a/lib/Headers/__clang_cuda_runtime_wrapper.h b/lib/Headers/__clang_cuda_runtime_wrapper.h index a5eb4bd74a..ed6cefb295 100644 --- a/lib/Headers/__clang_cuda_runtime_wrapper.h +++ b/lib/Headers/__clang_cuda_runtime_wrapper.h @@ -62,7 +62,7 @@ #include "cuda.h" #if !defined(CUDA_VERSION) #error "cuda.h did not define CUDA_VERSION" -#elif CUDA_VERSION < 7000 || CUDA_VERSION > 9010 +#elif CUDA_VERSION < 7000 || CUDA_VERSION > 9020 #error "Unsupported CUDA version!" #endif @@ -199,6 +199,11 @@ inline __host__ double __signbitd(double x) { #endif #if CUDA_VERSION >= 9000 +// CUDA-9.2 needs host-side memcpy for some host functions in +// device_functions.hpp +#if CUDA_VERSION >= 9020 +#include +#endif #include "crt/math_functions.hpp" #else #include "math_functions.hpp" -- 2.40.0