#ifndef LLVM_CLANG_BASIC_CUDA_H
#define LLVM_CLANG_BASIC_CUDA_H
namespace llvm {
class StringRef;
class Twine;
class VersionTuple;
}
namespace clang {
enum class CudaVersion { … };
const char *CudaVersionToString(CudaVersion V);
CudaVersion CudaStringToVersion(const llvm::Twine &S);
enum class OffloadArch { … };
enum class CUDAFunctionTarget { … };
static inline bool IsNVIDIAOffloadArch(OffloadArch A) { … }
static inline bool IsAMDOffloadArch(OffloadArch A) { … }
const char *OffloadArchToString(OffloadArch A);
const char *OffloadArchToVirtualArchString(OffloadArch A);
OffloadArch StringToOffloadArch(llvm::StringRef S);
CudaVersion MinVersionForOffloadArch(OffloadArch A);
CudaVersion MaxVersionForOffloadArch(OffloadArch A);
enum class CudaFeature { … };
CudaVersion ToCudaVersion(llvm::VersionTuple);
bool CudaFeatureEnabled(llvm::VersionTuple, CudaFeature);
bool CudaFeatureEnabled(CudaVersion, CudaFeature);
}
#endif