| clang 22.0.0git
    | 
#include "/work/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CGOpenCLRuntime.h"
| Classes | |
| struct | EnqueuedBlockInfo | 
| Structure for enqueued block information.  More... | |
| Public Member Functions | |
| CGOpenCLRuntime (CodeGenModule &CGM) | |
| virtual | ~CGOpenCLRuntime () | 
| virtual void | EmitWorkGroupLocalVarDecl (CodeGenFunction &CGF, const VarDecl &D) | 
| Emit the IR required for a work-group-local variable declaration, and add an entry to CGF's LocalDeclMap for D. | |
| virtual llvm::Type * | convertOpenCLSpecificType (const Type *T) | 
| virtual llvm::Type * | getPipeType (const PipeType *T) | 
| llvm::Type * | getSamplerType (const Type *T) | 
| virtual llvm::Value * | getPipeElemSize (const Expr *PipeArg) | 
| virtual llvm::Value * | getPipeElemAlign (const Expr *PipeArg) | 
| llvm::PointerType * | getGenericVoidPointerType () | 
| EnqueuedBlockInfo | emitOpenCLEnqueuedBlock (CodeGenFunction &CGF, const Expr *E) | 
| void | recordBlockInfo (const BlockExpr *E, llvm::Function *InvokeF, llvm::Value *Block, llvm::Type *BlockTy) | 
| Record invoke function and block literal emitted during normal codegen for a block expression. | |
| llvm::Function * | getInvokeFunction (const Expr *E) | 
| Protected Member Functions | |
| virtual llvm::Type * | getPipeType (const PipeType *T, StringRef Name, llvm::Type *&PipeTy) | 
| llvm::PointerType * | getPointerType (const Type *T) | 
| Protected Attributes | |
| CodeGenModule & | CGM | 
| llvm::Type * | PipeROTy | 
| llvm::Type * | PipeWOTy | 
| llvm::Type * | SamplerTy | 
| llvm::DenseMap< const Expr *, EnqueuedBlockInfo > | EnqueuedBlockMap | 
| Maps block expression to block information. | |
Definition at line 36 of file CGOpenCLRuntime.h.
| 
 | inline | 
Definition at line 58 of file CGOpenCLRuntime.h.
References CGM, clang::nullptr, PipeROTy, PipeWOTy, and SamplerTy.
| 
 | virtual | 
Definition at line 26 of file CGOpenCLRuntime.cpp.
| 
 | virtual | 
Definition at line 33 of file CGOpenCLRuntime.cpp.
References CGM, getPointerType(), getSamplerType(), clang::T, and clang::CodeGen::Type.
| CGOpenCLRuntime::EnqueuedBlockInfo CGOpenCLRuntime::emitOpenCLEnqueuedBlock | ( | CodeGenFunction & | CGF, | 
| const Expr * | E ) | 
Definition at line 145 of file CGOpenCLRuntime.cpp.
References clang::Block, clang::CodeGen::CGOpenCLRuntime::EnqueuedBlockInfo::BlockTy, clang::CodeGen::TargetCodeGenInfo::createEnqueuedBlockKernel(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), EnqueuedBlockMap, getBlockExpr(), clang::CodeGen::CodeGenFunction::getTargetHooks(), clang::CodeGen::CGOpenCLRuntime::EnqueuedBlockInfo::InvokeFunc, and clang::CodeGen::CGOpenCLRuntime::EnqueuedBlockInfo::KernelHandle.
| 
 | virtual | 
Emit the IR required for a work-group-local variable declaration, and add an entry to CGF's LocalDeclMap for D.
The base class does this using CodeGenFunction::EmitStaticVarDecl to emit an internal global for D.
Definition at line 28 of file CGOpenCLRuntime.cpp.
References clang::CodeGen::CodeGenFunction::EmitStaticVarDecl().
| llvm::PointerType * CGOpenCLRuntime::getGenericVoidPointerType | ( | ) | 
Definition at line 101 of file CGOpenCLRuntime.cpp.
References CGM, and clang::opencl_generic.
Referenced by clang::CodeGen::CodeGenModule::getGenericBlockLiteralType(), and initializeForBlockHeader().
| llvm::Function * CGOpenCLRuntime::getInvokeFunction | ( | const Expr * | E | ) | 
Definition at line 140 of file CGOpenCLRuntime.cpp.
References EnqueuedBlockMap, and getBlockExpr().
| 
 | virtual | 
Definition at line 91 of file CGOpenCLRuntime.cpp.
References clang::Type::castAs(), CGM, clang::PipeType::getElementType(), and clang::Expr::getType().
Referenced by clang::CodeGen::CodeGenFunction::EmitBuiltinExpr().
| 
 | virtual | 
Definition at line 81 of file CGOpenCLRuntime.cpp.
References clang::Type::castAs(), CGM, clang::PipeType::getElementType(), and clang::Expr::getType().
Referenced by clang::CodeGen::CodeGenFunction::EmitBuiltinExpr().
| 
 | virtual | 
Definition at line 52 of file CGOpenCLRuntime.cpp.
References CGM, getPipeType(), PipeROTy, PipeWOTy, and clang::T.
| 
 | protectedvirtual | 
Definition at line 62 of file CGOpenCLRuntime.cpp.
References getPointerType(), and clang::T.
Referenced by getPipeType().
| 
 | protected | 
Definition at line 46 of file CGOpenCLRuntime.cpp.
References CGM, clang::T, and clang::CodeGen::Type.
Referenced by convertOpenCLSpecificType(), getPipeType(), and getSamplerType().
| llvm::Type * CGOpenCLRuntime::getSamplerType | ( | const Type * | T | ) | 
Definition at line 69 of file CGOpenCLRuntime.cpp.
References CGM, getPointerType(), SamplerTy, clang::T, and clang::CodeGen::Type.
Referenced by convertOpenCLSpecificType(), and clang::CodeGen::CodeGenModule::createOpenCLIntToSamplerConversion().
| void CGOpenCLRuntime::recordBlockInfo | ( | const BlockExpr * | E, | 
| llvm::Function * | InvokeF, | ||
| llvm::Value * | Block, | ||
| llvm::Type * | BlockTy ) | 
Record invoke function and block literal emitted during normal codegen for a block expression.
Record emitted llvm invoke function and llvm block literal for the corresponding block expression.
The information is used by emitOpenCLEnqueuedBlock to emit wrapper kernel.
| InvokeF | invoke function emitted for the block expression. | 
| Block | block literal emitted for the block expression. | 
Definition at line 127 of file CGOpenCLRuntime.cpp.
References clang::Block, clang::CodeGen::CGOpenCLRuntime::EnqueuedBlockInfo::BlockArg, clang::CodeGen::CGOpenCLRuntime::EnqueuedBlockInfo::BlockTy, EnqueuedBlockMap, clang::CodeGen::CGOpenCLRuntime::EnqueuedBlockInfo::InvokeFunc, clang::isa(), and clang::CodeGen::CGOpenCLRuntime::EnqueuedBlockInfo::KernelHandle.
Referenced by buildGlobalBlock().
| 
 | protected | 
Definition at line 38 of file CGOpenCLRuntime.h.
Referenced by CGOpenCLRuntime(), convertOpenCLSpecificType(), getGenericVoidPointerType(), getPipeElemAlign(), getPipeElemSize(), getPipeType(), getPointerType(), and getSamplerType().
| 
 | protected | 
Maps block expression to block information.
Definition at line 51 of file CGOpenCLRuntime.h.
Referenced by emitOpenCLEnqueuedBlock(), getInvokeFunction(), and recordBlockInfo().
| 
 | protected | 
Definition at line 39 of file CGOpenCLRuntime.h.
Referenced by CGOpenCLRuntime(), and getPipeType().
| 
 | protected | 
Definition at line 40 of file CGOpenCLRuntime.h.
Referenced by CGOpenCLRuntime(), and getPipeType().
| 
 | protected | 
Definition at line 41 of file CGOpenCLRuntime.h.
Referenced by CGOpenCLRuntime(), and getSamplerType().