15 #ifndef LLVM_CLANG_LIB_CODEGEN_CGCUDARUNTIME_H 16 #define LLVM_CLANG_LIB_CODEGEN_CGCUDARUNTIME_H 18 #include "llvm/ADT/StringRef.h" 27 class CUDAKernelCallExpr;
32 class CodeGenFunction;
34 class FunctionArgList;
35 class ReturnValueSlot;
45 ExternDeviceVar = 0x01,
46 ConstantDeviceVar = 0x02,
58 virtual void registerDeviceVar(
const VarDecl *VD, llvm::GlobalVariable &Var,
63 virtual llvm::Function *makeModuleCtorFunction() = 0;
67 virtual llvm::Function *makeModuleDtorFunction() = 0;
70 virtual std::string getDeviceStubName(llvm::StringRef Name)
const = 0;
ReturnValueSlot - Contains the address where the return value of a function can be stored...
Specialize PointerLikeTypeTraits to allow LazyGenerationalUpdatePtr to be placed into a PointerUnion...
constexpr XRayInstrMask Function
bool ReturnValue(const T &V, APValue &R)
Convers a value to an APValue.
Represents a variable declaration or definition.
CodeGenFunction - This class organizes the per-function state that is used while generating LLVM code...
RValue - This trivial value class is used to represent the result of an expression that is evaluated...
FunctionArgList - Type for representing both the decl and type of parameters to a function...
This class organizes the cross-function state that is used while generating LLVM code.
Dataflow Directional Tag Classes.
Represents a call to a CUDA kernel function.
CGCUDARuntime * CreateNVCUDARuntime(CodeGenModule &CGM)
Creates an instance of a CUDA runtime class.
CGCUDARuntime(CodeGenModule &CGM)