clang  6.0.0svn
Cuda.h
Go to the documentation of this file.
1 //===--- Cuda.h - Utilities for compiling CUDA code ------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLVM_CLANG_BASIC_CUDA_H
11 #define LLVM_CLANG_BASIC_CUDA_H
12 
13 namespace llvm {
14 class StringRef;
15 } // namespace llvm
16 
17 namespace clang {
18 
19 enum class CudaVersion {
20  UNKNOWN,
21  CUDA_70,
22  CUDA_75,
23  CUDA_80,
24  CUDA_90,
25 };
26 const char *CudaVersionToString(CudaVersion V);
27 
28 // No string -> CudaVersion conversion function because there's no canonical
29 // spelling of the various CUDA versions.
30 
31 enum class CudaArch {
32  UNKNOWN,
33  SM_20,
34  SM_21,
35  SM_30,
36  SM_32,
37  SM_35,
38  SM_37,
39  SM_50,
40  SM_52,
41  SM_53,
42  SM_60,
43  SM_61,
44  SM_62,
45  SM_70,
46 };
47 const char *CudaArchToString(CudaArch A);
48 
49 // The input should have the form "sm_20".
50 CudaArch StringToCudaArch(llvm::StringRef S);
51 
52 enum class CudaVirtualArch {
53  UNKNOWN,
54  COMPUTE_20,
55  COMPUTE_30,
56  COMPUTE_32,
57  COMPUTE_35,
58  COMPUTE_37,
59  COMPUTE_50,
60  COMPUTE_52,
61  COMPUTE_53,
62  COMPUTE_60,
63  COMPUTE_61,
64  COMPUTE_62,
65  COMPUTE_70,
66 };
68 
69 // The input should have the form "compute_20".
70 CudaVirtualArch StringToCudaVirtualArch(llvm::StringRef S);
71 
72 /// Get the compute_xx corresponding to an sm_yy.
74 
75 /// Get the earliest CudaVersion that supports the given CudaArch.
77 
78 } // namespace clang
79 
80 #endif
CudaVirtualArch StringToCudaVirtualArch(llvm::StringRef S)
Definition: Cuda.cpp:109
CudaArch
Definition: Cuda.h:31
const char * CudaArchToString(CudaArch A)
Definition: Cuda.cpp:25
DominatorTree GraphTraits specialization so the DominatorTree can be iterable by generic graph iterat...
Definition: Dominators.h:26
CudaArch StringToCudaArch(llvm::StringRef S)
Definition: Cuda.cpp:59
const char * CudaVersionToString(CudaVersion V)
Definition: Cuda.cpp:9
const char * CudaVirtualArchToString(CudaVirtualArch A)
Definition: Cuda.cpp:77
CudaVersion
Definition: Cuda.h:19
CudaVirtualArch
Definition: Cuda.h:52
CudaVersion MinVersionForCudaArch(CudaArch A)
Get the earliest CudaVersion that supports the given CudaArch.
Definition: Cuda.cpp:159
Dataflow Directional Tag Classes.
CudaVirtualArch VirtualArchForCudaArch(CudaArch A)
Get the compute_xx corresponding to an sm_yy.
Definition: Cuda.cpp:126