clang
3.7.0
|
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. More... | |
unsigned | CXXThisIndex |
The field index of 'this' within the block, if there is one. More... | |
bool | CanBeGlobal: 1 |
bool | NeedsCopyDispose: 1 |
True if the block needs a custom copy or dispose function. More... | |
bool | HasCXXObject: 1 |
bool | UsesStret: 1 |
bool | HasCapturedVariableLayout: 1 |
llvm::DenseMap< const VarDecl *, Capture > | Captures |
The mapping of allocated indexes within the block. More... | |
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.
|
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().
|
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().
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().
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().
const BlockDecl* clang::CodeGen::CGBlockInfo::Block |
Definition at line 210 of file CGBlocks.h.
Referenced by getBlockDecl(), and getBlockExpr().
CharUnits clang::CodeGen::CGBlockInfo::BlockAlign |
Definition at line 213 of file CGBlocks.h.
Referenced by buildGlobalBlock(), computeBlockInfo(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), and initializeForBlockHeader().
const BlockExpr* clang::CodeGen::CGBlockInfo::BlockExpression |
Definition at line 211 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenModule::GetAddrOfGlobalBlock(), and getBlockExpr().
CharUnits clang::CodeGen::CGBlockInfo::BlockHeaderForcedGapOffset |
Definition at line 218 of file CGBlocks.h.
Referenced by computeBlockInfo().
CharUnits clang::CodeGen::CGBlockInfo::BlockHeaderForcedGapSize |
Definition at line 221 of file CGBlocks.h.
Referenced by computeBlockInfo().
CharUnits clang::CodeGen::CGBlockInfo::BlockSize |
Definition at line 212 of file CGBlocks.h.
Referenced by buildBlockDescriptor(), computeBlockInfo(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), and initializeForBlockHeader().
bool clang::CodeGen::CGBlockInfo::CanBeGlobal |
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().
The mapping of allocated indexes within the block.
Definition at line 206 of file CGBlocks.h.
Referenced by computeBlockInfo(), and getCapture().
unsigned clang::CodeGen::CGBlockInfo::CXXThisIndex |
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().
bool clang::CodeGen::CGBlockInfo::HasCapturedVariableLayout |
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().
bool clang::CodeGen::CGBlockInfo::HasCXXObject |
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.
bool clang::CodeGen::CGBlockInfo::NeedsCopyDispose |
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().
CGBlockInfo* clang::CodeGen::CGBlockInfo::NextBlockInfo |
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::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockDeclRefVariable(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), and clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction().
|
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().