16 #ifndef LLVM_CLANG_LIB_CODEGEN_CGCUDARUNTIME_H
17 #define LLVM_CLANG_LIB_CODEGEN_CGCUDARUNTIME_H
26 class CUDAKernelCallExpr;
30 class CodeGenFunction;
32 class FunctionArgList;
33 class ReturnValueSlot;
ReturnValueSlot - Contains the address where the return value of a function can be stored...
CodeGenFunction - This class organizes the per-function state that is used while generating LLVM code...
virtual RValue EmitCUDAKernelCallExpr(CodeGenFunction &CGF, const CUDAKernelCallExpr *E, ReturnValueSlot ReturnValue)
virtual void emitDeviceStub(CodeGenFunction &CGF, FunctionArgList &Args)=0
Emits a kernel launch stub.
RValue - This trivial value class is used to represent the result of an expression that is evaluated...
virtual llvm::Function * makeModuleDtorFunction()=0
Returns a module cleanup function or nullptr if it's not needed.
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.
virtual llvm::Function * makeModuleCtorFunction()=0
Constructs and returns a module initialization function or nullptr if it's not needed.
detail::InMemoryDirectory::const_iterator E
virtual void registerDeviceVar(llvm::GlobalVariable &Var, unsigned Flags)=0
Represents a call to a CUDA kernel function.
CGCUDARuntime * CreateNVCUDARuntime(CodeGenModule &CGM)
Creates an instance of a CUDA runtime class.
CGCUDARuntime(CodeGenModule &CGM)