clang  3.9.0
Public Types | Public Member Functions | Protected Attributes | List of all members
clang::CodeGen::CGCUDARuntime Class Referenceabstract

#include <CGCUDARuntime.h>

Collaboration diagram for clang::CodeGen::CGCUDARuntime:
[legend]

Public Types

enum  DeviceVarFlags { ExternDeviceVar = 0x01, ConstantDeviceVar = 0x02 }
 

Public Member Functions

 CGCUDARuntime (CodeGenModule &CGM)
 
virtual ~CGCUDARuntime ()
 
virtual RValue EmitCUDAKernelCallExpr (CodeGenFunction &CGF, const CUDAKernelCallExpr *E, ReturnValueSlot ReturnValue)
 
virtual void emitDeviceStub (CodeGenFunction &CGF, FunctionArgList &Args)=0
 Emits a kernel launch stub. More...
 
virtual void registerDeviceVar (llvm::GlobalVariable &Var, unsigned Flags)=0
 
virtual llvm::Function * makeModuleCtorFunction ()=0
 Constructs and returns a module initialization function or nullptr if it's not needed. More...
 
virtual llvm::Function * makeModuleDtorFunction ()=0
 Returns a module cleanup function or nullptr if it's not needed. More...
 

Protected Attributes

CodeGenModuleCGM
 

Detailed Description

Definition at line 36 of file CGCUDARuntime.h.

Member Enumeration Documentation

Enumerator
ExternDeviceVar 
ConstantDeviceVar 

Definition at line 42 of file CGCUDARuntime.h.

Constructor & Destructor Documentation

clang::CodeGen::CGCUDARuntime::CGCUDARuntime ( CodeGenModule CGM)
inline

Definition at line 47 of file CGCUDARuntime.h.

CGCUDARuntime::~CGCUDARuntime ( )
virtual

Definition at line 25 of file CGCUDARuntime.cpp.

Member Function Documentation

RValue CGCUDARuntime::EmitCUDAKernelCallExpr ( CodeGenFunction CGF,
const CUDAKernelCallExpr E,
ReturnValueSlot  ReturnValue 
)
virtual
virtual void clang::CodeGen::CGCUDARuntime::emitDeviceStub ( CodeGenFunction CGF,
FunctionArgList Args 
)
pure virtual

Emits a kernel launch stub.

Referenced by clang::CodeGen::CodeGenFunction::GenerateCode().

virtual llvm::Function* clang::CodeGen::CGCUDARuntime::makeModuleCtorFunction ( )
pure virtual

Constructs and returns a module initialization function or nullptr if it's not needed.

Must be called after all kernels have been emitted.

virtual llvm::Function* clang::CodeGen::CGCUDARuntime::makeModuleDtorFunction ( )
pure virtual

Returns a module cleanup function or nullptr if it's not needed.

Must be called after ModuleCtorFunction

virtual void clang::CodeGen::CGCUDARuntime::registerDeviceVar ( llvm::GlobalVariable &  Var,
unsigned  Flags 
)
pure virtual

Member Data Documentation

CodeGenModule& clang::CodeGen::CGCUDARuntime::CGM
protected

Definition at line 38 of file CGCUDARuntime.h.


The documentation for this class was generated from the following files: