clang API Documentation
CGBlockInfo - Information to generate a block literal. More...
#include <CGBlocks.h>
Classes | |
class | Capture |
Public Member Functions | |
const Capture & | getCapture (const VarDecl *var) const |
Capture & | getCapture (const VarDecl *var) |
const BlockDecl * | getBlockDecl () const |
const BlockExpr * | getBlockExpr () const |
CGBlockInfo (const BlockDecl *blockDecl, StringRef Name) | |
Public Attributes | |
StringRef | Name |
Name - The name of the block, kindof. | |
unsigned | CXXThisIndex |
The field index of 'this' within the block, if there is one. | |
bool | CanBeGlobal: 1 |
bool | NeedsCopyDispose: 1 |
True if the block needs a custom copy or dispose function. | |
bool | HasCXXObject: 1 |
bool | UsesStret: 1 |
bool | HasCapturedVariableLayout: 1 |
llvm::DenseMap< const VarDecl *, Capture > | Captures |
The mapping of allocated indexes within the block. | |
llvm::AllocaInst * | Address |
llvm::StructType * | StructureType |
const BlockDecl * | Block |
const BlockExpr * | BlockExpression |
CharUnits | BlockSize |
CharUnits | BlockAlign |
CharUnits | BlockHeaderForcedGapOffset |
CharUnits | BlockHeaderForcedGapSize |
llvm::Instruction * | DominatingIP |
CGBlockInfo * | NextBlockInfo |
CGBlockInfo - Information to generate a block literal.
Definition at line 144 of file CGBlocks.h.
CGBlockInfo::CGBlockInfo | ( | const BlockDecl * | blockDecl, |
StringRef | Name | ||
) |
Definition at line 30 of file CGBlocks.cpp.
const BlockDecl* clang::CodeGen::CGBlockInfo::getBlockDecl | ( | ) | const [inline] |
Definition at line 243 of file CGBlocks.h.
References Block.
Referenced by computeBlockInfo(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), findAndRemoveBlockInfo(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), and clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction().
const BlockExpr* clang::CodeGen::CGBlockInfo::getBlockExpr | ( | ) | const [inline] |
Definition at line 244 of file CGBlocks.h.
References Block, BlockExpression, and clang::BlockExpr::getBlockDecl().
Referenced by buildBlockDescriptor(), buildGlobalBlock(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), and clang::CodeGen::CodeGenFunction::GenerateBlockFunction().
const Capture& clang::CodeGen::CGBlockInfo::getCapture | ( | const VarDecl * | var | ) | const [inline] |
Definition at line 233 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockDeclRefVariable(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), and clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction().
Capture& clang::CodeGen::CGBlockInfo::getCapture | ( | const VarDecl * | var | ) | [inline] |
Definition at line 236 of file CGBlocks.h.
References Captures.
llvm::AllocaInst* clang::CodeGen::CGBlockInfo::Address |
Definition at line 208 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBlockLiteral().
Definition at line 210 of file CGBlocks.h.
Referenced by getBlockDecl(), and getBlockExpr().
Definition at line 213 of file CGBlocks.h.
Referenced by buildGlobalBlock(), computeBlockInfo(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), and initializeForBlockHeader().
Definition at line 211 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenModule::GetAddrOfGlobalBlock(), and getBlockExpr().
Definition at line 218 of file CGBlocks.h.
Referenced by computeBlockInfo().
Definition at line 221 of file CGBlocks.h.
Referenced by computeBlockInfo().
Definition at line 212 of file CGBlocks.h.
Referenced by buildBlockDescriptor(), computeBlockInfo(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), and initializeForBlockHeader().
CanBeGlobal - True if the block can be global, i.e. it has no non-constant captures.
Definition at line 188 of file CGBlocks.h.
Referenced by buildGlobalBlock(), computeBlockInfo(), and clang::CodeGen::CodeGenFunction::EmitBlockLiteral().
llvm::DenseMap<const VarDecl*, Capture> clang::CodeGen::CGBlockInfo::Captures |
The mapping of allocated indexes within the block.
Definition at line 206 of file CGBlocks.h.
Referenced by computeBlockInfo(), and getCapture().
The field index of 'this' within the block, if there is one.
Definition at line 150 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), and clang::CodeGen::CodeGenFunction::GenerateBlockFunction().
llvm::Instruction* clang::CodeGen::CGBlockInfo::DominatingIP |
An instruction which dominates the full-expression that the block is inside.
Definition at line 225 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBlockLiteral().
HasCapturedVariableLayout : True if block has captured variables and their layout meta-data has been generated.
Definition at line 203 of file CGBlocks.h.
Referenced by computeBlockInfo(), and clang::CodeGen::CodeGenFunction::EmitBlockLiteral().
HasCXXObject - True if the block's custom copy/dispose functions need to be run even in GC mode.
Definition at line 195 of file CGBlocks.h.
Referenced by computeBlockInfo(), and clang::CodeGen::CodeGenFunction::EmitBlockLiteral().
StringRef clang::CodeGen::CGBlockInfo::Name |
Name - The name of the block, kindof.
Definition at line 147 of file CGBlocks.h.
True if the block needs a custom copy or dispose function.
Definition at line 191 of file CGBlocks.h.
Referenced by buildBlockDescriptor(), computeBlockInfo(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), and clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable().
The next block in the block-info chain. Invalid if this block info is not part of the CGF's block-info chain, which is true if it corresponds to a global block or a block whose expression has been encountered.
Definition at line 231 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenFunction::destroyBlockInfos(), enterBlockScope(), and findAndRemoveBlockInfo().
llvm::StructType* clang::CodeGen::CGBlockInfo::StructureType |
Definition at line 209 of file CGBlocks.h.
Referenced by computeBlockInfo(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockDeclRefVariable(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), and clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction().
bool clang::CodeGen::CGBlockInfo::UsesStret [mutable] |
UsesStret : True if the block uses an stret return. Mutable because it gets set later in the block-creation process.
Definition at line 199 of file CGBlocks.h.
Referenced by buildGlobalBlock(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), and clang::CodeGen::CodeGenFunction::GenerateBlockFunction().