clang
6.0.0
|
CGBlockInfo - Information to generate a block literal. More...
#include "/work/www-prereleases/6.0.0/rc2/docsbuild/llvm.src/tools/clang/lib/CodeGen/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 |
CanBeGlobal - True if the block can be global, i.e. More... | |
bool | NeedsCopyDispose: 1 |
True if the block needs a custom copy or dispose function. More... | |
bool | HasCXXObject: 1 |
HasCXXObject - True if the block's custom copy/dispose functions need to be run even in GC mode. More... | |
bool | UsesStret: 1 |
UsesStret : True if the block uses an stret return. More... | |
bool | HasCapturedVariableLayout: 1 |
HasCapturedVariableLayout : True if block has captured variables and their layout meta-data has been generated. More... | |
llvm::DenseMap< const VarDecl *, Capture > | Captures |
The mapping of allocated indexes within the block. More... | |
Address | LocalAddress |
llvm::StructType * | StructureType |
const BlockDecl * | Block |
const BlockExpr * | BlockExpression |
CharUnits | BlockSize |
CharUnits | BlockAlign |
CharUnits | CXXThisOffset |
CharUnits | BlockHeaderForcedGapOffset |
CharUnits | BlockHeaderForcedGapSize |
llvm::Instruction * | DominatingIP |
An instruction which dominates the full-expression that the block is inside. More... | |
CGBlockInfo * | NextBlockInfo |
The next block in the block-info chain. More... | |
CGBlockInfo - Information to generate a block literal.
Definition at line 149 of file CGBlocks.h.
CGBlockInfo::CGBlockInfo | ( | const BlockDecl * | blockDecl, |
StringRef | Name | ||
) |
Definition at line 34 of file CGBlocks.cpp.
Referenced by enterBlockScope().
|
inline |
Definition at line 271 of file CGBlocks.h.
Referenced by computeBlockInfo(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), findAndRemoveBlockInfo(), findBlockCapturedManagedEntities(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), and GetGCAttrTypeForType().
|
inline |
Definition at line 272 of file CGBlocks.h.
References clang::BlockExpr::getBlockDecl().
Referenced by buildBlockDescriptor(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), and clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction().
Definition at line 261 of file CGBlocks.h.
Referenced by clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockDeclRefVariable(), findBlockCapturedManagedEntities(), getCaptureFieldType(), and GetGCAttrTypeForType().
Definition at line 264 of file CGBlocks.h.
const BlockDecl* clang::CodeGen::CGBlockInfo::Block |
Definition at line 237 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), and clang::CodeGen::CodeGenModule::GetAddrOfGlobalBlock().
CharUnits clang::CodeGen::CGBlockInfo::BlockAlign |
Definition at line 240 of file CGBlocks.h.
Referenced by buildGlobalBlock(), computeBlockInfo(), and initializeForBlockHeader().
const BlockExpr* clang::CodeGen::CGBlockInfo::BlockExpression |
Definition at line 238 of file CGBlocks.h.
Referenced by buildGlobalBlock(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), and clang::CodeGen::CodeGenModule::GetAddrOfGlobalBlock().
CharUnits clang::CodeGen::CGBlockInfo::BlockHeaderForcedGapOffset |
Definition at line 246 of file CGBlocks.h.
Referenced by computeBlockInfo(), and GetGCAttrTypeForType().
CharUnits clang::CodeGen::CGBlockInfo::BlockHeaderForcedGapSize |
Definition at line 249 of file CGBlocks.h.
Referenced by computeBlockInfo(), and GetGCAttrTypeForType().
CharUnits clang::CodeGen::CGBlockInfo::BlockSize |
Definition at line 239 of file CGBlocks.h.
Referenced by buildBlockDescriptor(), buildGlobalBlock(), computeBlockInfo(), and GetGCAttrTypeForType().
bool clang::CodeGen::CGBlockInfo::CanBeGlobal |
CanBeGlobal - True if the block can be global, i.e.
it has no non-constant captures.
Definition at line 215 of file CGBlocks.h.
Referenced by buildGlobalBlock(), computeBlockInfo(), and clang::CodeGen::CodeGenFunction::EmitBlockLiteral().
The mapping of allocated indexes within the block.
Definition at line 233 of file CGBlocks.h.
Referenced by buildBlockDescriptor(), and computeBlockInfo().
unsigned clang::CodeGen::CGBlockInfo::CXXThisIndex |
The field index of 'this' within the block, if there is one.
Definition at line 155 of file CGBlocks.h.
Referenced by buildBlockDescriptor().
CharUnits clang::CodeGen::CGBlockInfo::CXXThisOffset |
Definition at line 241 of file CGBlocks.h.
Referenced by buildBlockDescriptor().
llvm::Instruction* clang::CodeGen::CGBlockInfo::DominatingIP |
An instruction which dominates the full-expression that the block is inside.
Definition at line 253 of file CGBlocks.h.
bool clang::CodeGen::CGBlockInfo::HasCapturedVariableLayout |
HasCapturedVariableLayout : True if block has captured variables and their layout meta-data has been generated.
Definition at line 230 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 222 of file CGBlocks.h.
Referenced by computeBlockInfo(), and clang::CodeGen::CodeGenFunction::EmitBlockLiteral().
Address clang::CodeGen::CGBlockInfo::LocalAddress |
Definition at line 235 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBlockLiteral().
StringRef clang::CodeGen::CGBlockInfo::Name |
Name - The name of the block, kindof.
Definition at line 152 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenModule::GetAddrOfGlobalBlock().
bool clang::CodeGen::CGBlockInfo::NeedsCopyDispose |
True if the block needs a custom copy or dispose function.
Definition at line 218 of file CGBlocks.h.
Referenced by buildBlockDescriptor(), computeBlockInfo(), and clang::CodeGen::CodeGenFunction::EmitBlockLiteral().
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 259 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenFunction::destroyBlockInfos(), and findAndRemoveBlockInfo().
llvm::StructType* clang::CodeGen::CGBlockInfo::StructureType |
|
mutable |
UsesStret : True if the block uses an stret return.
Mutable because it gets set later in the block-creation process.
Definition at line 226 of file CGBlocks.h.
Referenced by buildGlobalBlock(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), and clang::CodeGen::CodeGenFunction::GenerateBlockFunction().