From 3cce307799a4803b4f19cb9181d0dfa197cb93d9 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 llvm-svn: 330753 --- clang/include/clang/Basic/Cuda.h | 3 ++- clang/lib/Basic/Cuda.cpp | 2 ++ clang/lib/Driver/ToolChains/Cuda.cpp | 2 ++ clang/lib/Headers/__clang_cuda_runtime_wrapper.h | 7 ++++++- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/clang/include/clang/Basic/Cuda.h b/clang/include/clang/Basic/Cuda.h index 9981cf92fcd98..24159e160f3fc 100644 --- a/clang/include/clang/Basic/Cuda.h +++ b/clang/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/clang/lib/Basic/Cuda.cpp b/clang/lib/Basic/Cuda.cpp index 970c060c0be35..dc7e61c02b24b 100644 --- a/clang/lib/Basic/Cuda.cpp +++ b/clang/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/clang/lib/Driver/ToolChains/Cuda.cpp b/clang/lib/Driver/ToolChains/Cuda.cpp index fdd62fec390b8..3978cb27429bd 100644 --- a/clang/lib/Driver/ToolChains/Cuda.cpp +++ b/clang/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/clang/lib/Headers/__clang_cuda_runtime_wrapper.h b/clang/lib/Headers/__clang_cuda_runtime_wrapper.h index a5eb4bd74ab3b..ed6cefb295ce8 100644 --- a/clang/lib/Headers/__clang_cuda_runtime_wrapper.h +++ b/clang/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"