clang
8.0.0
|
CGBlockInfo - Information to generate a block literal. More...
#include "/work/llvm-www-releases/8.0.0/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) | |
bool | needsCopyDisposeHelpers () const |
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 has captures that would necessitate custom copy or dispose helper functions if the block were escaping. 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... | |
bool | CapturesNonExternalType: 1 |
Indicates whether an object of a non-external C++ class is captured. 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 153 of file CGBlocks.h.
CGBlockInfo::CGBlockInfo | ( | const BlockDecl * | blockDecl, |
StringRef | Name | ||
) |
Definition at line 36 of file CGBlocks.cpp.
Referenced by enterBlockScope().
|
inline |
Definition at line 281 of file CGBlocks.h.
Referenced by computeBlockInfo(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), findAndRemoveBlockInfo(), findBlockCapturedManagedEntities(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), getBlockLayoutInfoString(), and GetGCAttrTypeForType().
|
inline |
Definition at line 282 of file CGBlocks.h.
References clang::ast_matchers::blockDecl, and clang::BlockExpr::getBlockDecl().
Referenced by buildBlockDescriptor(), buildGlobalBlock(), clang::CodeGen::CGDebugInfo::EmitDeclareOfArgVariable(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), and getBlockDescriptorName().
Definition at line 271 of file CGBlocks.h.
Referenced by clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockDeclRefVariable(), findBlockCapturedManagedEntities(), clang::CodeGen::CodeGenFunction::GetAddrOfBlockDecl(), getBlockLayoutInfoString(), getCaptureFieldType(), and GetGCAttrTypeForType().
Definition at line 274 of file CGBlocks.h.
|
inline |
Definition at line 291 of file CGBlocks.h.
References clang::BlockDecl::doesNotEscape().
Referenced by buildBlockDescriptor(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), getBlockDescriptorName(), and getBlockLayoutInfoString().
const BlockDecl* clang::CodeGen::CGBlockInfo::Block |
Definition at line 247 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), and clang::CodeGen::CodeGenModule::GetAddrOfGlobalBlock().
CharUnits clang::CodeGen::CGBlockInfo::BlockAlign |
Definition at line 250 of file CGBlocks.h.
Referenced by buildGlobalBlock(), computeBlockInfo(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), getBlockDescriptorName(), initializeForBlockHeader(), and clang::CodeGen::CodeGenFunction::LoadBlockStruct().
const BlockExpr* clang::CodeGen::CGBlockInfo::BlockExpression |
Definition at line 248 of file CGBlocks.h.
Referenced by buildGlobalBlock(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), and clang::CodeGen::CodeGenModule::GetAddrOfGlobalBlock().
CharUnits clang::CodeGen::CGBlockInfo::BlockHeaderForcedGapOffset |
Definition at line 256 of file CGBlocks.h.
Referenced by computeBlockInfo(), and getBlockLayoutInfoString().
CharUnits clang::CodeGen::CGBlockInfo::BlockHeaderForcedGapSize |
Definition at line 259 of file CGBlocks.h.
Referenced by computeBlockInfo(), and getBlockLayoutInfoString().
CharUnits clang::CodeGen::CGBlockInfo::BlockSize |
Definition at line 249 of file CGBlocks.h.
Referenced by buildBlockDescriptor(), buildGlobalBlock(), computeBlockInfo(), getBlockDescriptorName(), GetGCAttrTypeForType(), 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 219 of file CGBlocks.h.
Referenced by buildGlobalBlock(), computeBlockInfo(), and clang::CodeGen::CodeGenFunction::EmitBlockLiteral().
The mapping of allocated indexes within the block.
Definition at line 243 of file CGBlocks.h.
Referenced by buildBlockDescriptor(), and computeBlockInfo().
bool clang::CodeGen::CGBlockInfo::CapturesNonExternalType |
Indicates whether an object of a non-external C++ class is captured.
This bit is used to determine the linkage of the block copy/destroy helper functions.
Definition at line 240 of file CGBlocks.h.
Referenced by computeBlockInfo(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), and clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction().
unsigned clang::CodeGen::CGBlockInfo::CXXThisIndex |
The field index of 'this' within the block, if there is one.
Definition at line 159 of file CGBlocks.h.
Referenced by buildBlockDescriptor().
CharUnits clang::CodeGen::CGBlockInfo::CXXThisOffset |
Definition at line 251 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 263 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 235 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 227 of file CGBlocks.h.
Referenced by computeBlockInfo(), and clang::CodeGen::CodeGenFunction::EmitBlockLiteral().
Address clang::CodeGen::CGBlockInfo::LocalAddress |
Definition at line 245 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 156 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenModule::GetAddrOfGlobalBlock(), getBlockDescriptorName(), and getCopyDestroyHelperFuncName().
bool clang::CodeGen::CGBlockInfo::NeedsCopyDispose |
True if the block has captures that would necessitate custom copy or dispose helper functions if the block were escaping.
Definition at line 223 of file CGBlocks.h.
Referenced by computeBlockInfo(), and clang::CodeGen::CGDebugInfo::EmitDeclareOfArgVariable().
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 269 of file CGBlocks.h.
Referenced by clang::CodeGen::CodeGenFunction::destroyBlockInfos(), and findAndRemoveBlockInfo().
llvm::StructType* clang::CodeGen::CGBlockInfo::StructureType |
Definition at line 246 of file CGBlocks.h.
Referenced by computeBlockInfo(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockDeclRefVariable(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), and getBlockLayoutInfoString().
|
mutable |
UsesStret : True if the block uses an stret return.
Mutable because it gets set later in the block-creation process.
Definition at line 231 of file CGBlocks.h.
Referenced by buildGlobalBlock(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), and clang::CodeGen::CodeGenFunction::GenerateBlockFunction().