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, llvm::StringRef Name) | |
Public Attributes | |
| llvm::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 |
| 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 |
| llvm::Instruction * | DominatingIP |
| CGBlockInfo * | NextBlockInfo |
CGBlockInfo - Information to generate a block literal.
Definition at line 129 of file CGBlocks.h.
| CGBlockInfo::CGBlockInfo | ( | const BlockDecl * | blockDecl, |
| llvm::StringRef | Name | ||
| ) |
Definition at line 28 of file CGBlocks.cpp.
| const BlockDecl* clang::CodeGen::CGBlockInfo::getBlockDecl | ( | ) | const [inline] |
Definition at line 216 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 217 of file CGBlocks.h.
References Block, BlockExpression, and clang::BlockExpr::getBlockDecl().
Referenced by buildBlockDescriptor(), buildGlobalBlock(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), and clang::CodeGen::CodeGenFunction::GenerateBlockFunction().
Definition at line 206 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().
Definition at line 209 of file CGBlocks.h.
References Captures.
| llvm::AllocaInst* clang::CodeGen::CGBlockInfo::Address |
Definition at line 189 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBlockLiteral().
Definition at line 191 of file CGBlocks.h.
Referenced by getBlockDecl(), and getBlockExpr().
Definition at line 194 of file CGBlocks.h.
Referenced by buildGlobalBlock(), computeBlockInfo(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), and initializeForBlockHeader().
Definition at line 192 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenModule::GetAddrOfGlobalBlock(), and getBlockExpr().
Definition at line 193 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 173 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 187 of file CGBlocks.h.
Referenced by computeBlockInfo(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), and getCapture().
The field index of 'this' within the block, if there is one.
Definition at line 135 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 198 of file CGBlocks.h.
Referenced by 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 180 of file CGBlocks.h.
Referenced by computeBlockInfo(), and clang::CodeGen::CodeGenFunction::EmitBlockLiteral().
| llvm::StringRef clang::CodeGen::CGBlockInfo::Name |
Name - The name of the block, kindof.
Definition at line 132 of file CGBlocks.h.
True if the block needs a custom copy or dispose function.
Definition at line 176 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 204 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenFunction::destroyBlockInfos(), enterBlockScope(), and findAndRemoveBlockInfo().
| llvm::StructType* clang::CodeGen::CGBlockInfo::StructureType |
Definition at line 190 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 184 of file CGBlocks.h.
Referenced by buildGlobalBlock(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), and clang::CodeGen::CodeGenFunction::GenerateBlockFunction().