class CGCUDARuntime

Declaration

class CGCUDARuntime { /* full declaration omitted */ };

Declared at: clang/lib/CodeGen/CGCUDARuntime.h:41

Member Variables

protected clang::CodeGen::CodeGenModule& CGM

Method Overview

  • public CGCUDARuntime(clang::CodeGen::CodeGenModule & CGM)
  • public virtual clang::CodeGen::RValue EmitCUDAKernelCallExpr(clang::CodeGen::CodeGenFunction & CGF, const clang::CUDAKernelCallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue)
  • public virtual void emitDeviceStub(clang::CodeGen::CodeGenFunction & CGF, clang::CodeGen::FunctionArgList & Args)
  • public virtual llvm::Function * finalizeModule()
  • public virtual std::string getDeviceSideName(const clang::NamedDecl * ND)
  • public virtual llvm::GlobalValue * getKernelHandle(llvm::Function * Stub, clang::GlobalDecl GD)
  • public virtual llvm::Function * getKernelStub(llvm::GlobalValue * Handle)
  • public virtual void handleVarRegistration(const clang::VarDecl * VD, llvm::GlobalVariable & Var)
  • public virtual void internalizeDeviceSideVar(const clang::VarDecl * D, llvm::GlobalValue::LinkageTypes & Linkage)
  • public virtual ~CGCUDARuntime()

Methods

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

Declared at: clang/lib/CodeGen/CGCUDARuntime.h:89

Parameters

clang::CodeGen::CodeGenModule& CGM

virtual clang::CodeGen::RValue
EmitCUDAKernelCallExpr(
    clang::CodeGen::CodeGenFunction& CGF,
    const clang::CUDAKernelCallExpr* E,
    clang::CodeGen::ReturnValueSlot ReturnValue)

Declared at: clang/lib/CodeGen/CGCUDARuntime.h:92

Parameters

clang::CodeGen::CodeGenFunction& CGF
const clang::CUDAKernelCallExpr* E
clang::CodeGen::ReturnValueSlot ReturnValue

virtual void emitDeviceStub(
    clang::CodeGen::CodeGenFunction& CGF,
    clang::CodeGen::FunctionArgList& Args)

Description

Emits a kernel launch stub.

Declared at: clang/lib/CodeGen/CGCUDARuntime.h:97

Parameters

clang::CodeGen::CodeGenFunction& CGF
clang::CodeGen::FunctionArgList& Args

virtual llvm::Function* finalizeModule()

Description

Finalize generated LLVM module. Returns a module constructor function to be added or a null pointer.

Declared at: clang/lib/CodeGen/CGCUDARuntime.h:105

virtual std::string getDeviceSideName(
    const clang::NamedDecl* ND)

Description

Returns function or variable name on device side even if the current compilation is for host.

Declared at: clang/lib/CodeGen/CGCUDARuntime.h:109

Parameters

const clang::NamedDecl* ND

virtual llvm::GlobalValue* getKernelHandle(
    llvm::Function* Stub,
    clang::GlobalDecl GD)

Description

Get kernel handle by stub function.

Declared at: clang/lib/CodeGen/CGCUDARuntime.h:112

Parameters

llvm::Function* Stub
clang::GlobalDecl GD

virtual llvm::Function* getKernelStub(
    llvm::GlobalValue* Handle)

Description

Get kernel stub by kernel handle.

Declared at: clang/lib/CodeGen/CGCUDARuntime.h:116

Parameters

llvm::GlobalValue* Handle

virtual void handleVarRegistration(
    const clang::VarDecl* VD,
    llvm::GlobalVariable& Var)

Description

Check whether a variable is a device variable and register it if true.

Declared at: clang/lib/CodeGen/CGCUDARuntime.h:100

Parameters

const clang::VarDecl* VD
llvm::GlobalVariable& Var

virtual void internalizeDeviceSideVar(
    const clang::VarDecl* D,
    llvm::GlobalValue::LinkageTypes& Linkage)

Description

Adjust linkage of shadow variables in host compilation.

Declared at: clang/lib/CodeGen/CGCUDARuntime.h:120

Parameters

const clang::VarDecl* D
llvm::GlobalValue::LinkageTypes& Linkage

virtual ~CGCUDARuntime()

Declared at: clang/lib/CodeGen/CGCUDARuntime.h:90