|
LLVM 22.0.0git
|
Base class for scope-like contexts. More...
#include "llvm/IR/DebugInfoMetadata.h"
Static Public Member Functions | |
| static bool | classof (const Metadata *MD) |
| Static Public Member Functions inherited from llvm::DINode | |
| static LLVM_ABI DIFlags | getFlag (StringRef Flag) |
| static LLVM_ABI StringRef | getFlagString (DIFlags Flag) |
| static LLVM_ABI DIFlags | splitFlags (DIFlags Flags, SmallVectorImpl< DIFlags > &SplitFlags) |
| Split up a flags bitfield. | |
| static bool | classof (const Metadata *MD) |
| Static Public Member Functions inherited from llvm::MDNode | |
| static MDTuple * | get (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
| static MDTuple * | getIfExists (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
| static MDTuple * | getDistinct (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
| static TempMDTuple | getTemporary (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
| static LLVM_ABI void | deleteTemporary (MDNode *N) |
| Deallocate a node created by getTemporary. | |
| template<class T> | |
| static std::enable_if_t< std::is_base_of< MDNode, T >::value, T * > | replaceWithPermanent (std::unique_ptr< T, TempMDNodeDeleter > N) |
| Replace a temporary node with a permanent one. | |
| template<class T> | |
| static std::enable_if_t< std::is_base_of< MDNode, T >::value, T * > | replaceWithUniqued (std::unique_ptr< T, TempMDNodeDeleter > N) |
| Replace a temporary node with a uniqued one. | |
| template<class T> | |
| static std::enable_if_t< std::is_base_of< MDNode, T >::value, T * > | replaceWithDistinct (std::unique_ptr< T, TempMDNodeDeleter > N) |
| Replace a temporary node with a distinct one. | |
| static bool | classof (const Metadata *MD) |
| Methods for support type inquiry through isa, cast, and dyn_cast: | |
| static LLVM_ABI MDNode * | concatenate (MDNode *A, MDNode *B) |
| Methods for metadata merging. | |
| static LLVM_ABI MDNode * | intersect (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMostGenericTBAA (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMostGenericFPMath (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMostGenericRange (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMostGenericNoaliasAddrspace (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMostGenericAliasScope (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMostGenericAlignmentOrDereferenceable (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMergedProfMetadata (MDNode *A, MDNode *B, const Instruction *AInstr, const Instruction *BInstr) |
| Merge !prof metadata from two instructions. | |
| static LLVM_ABI MDNode * | getMergedMemProfMetadata (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMergedCallsiteMetadata (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMergedCalleeTypeMetadata (const MDNode *A, const MDNode *B) |
| static LLVM_ABI CaptureComponents | toCaptureComponents (const MDNode *MD) |
| Convert !captures metadata to CaptureComponents. MD may be nullptr. | |
| static LLVM_ABI MDNode * | fromCaptureComponents (LLVMContext &Ctx, CaptureComponents CC) |
| Convert CaptureComponents to !captures metadata. | |
Additional Inherited Members | |
| Public Types inherited from llvm::DINode | |
| enum | DIFlags : uint32_t { FlagAccessibility = FlagPrivate | FlagProtected | FlagPublic , FlagPtrToMemberRep } |
| Debug info flags. More... | |
| Public Types inherited from llvm::MDNode | |
| using | op_iterator = const MDOperand * |
| using | op_range = iterator_range<op_iterator> |
| Public Types inherited from llvm::Metadata | |
| enum | MetadataKind |
| Static Public Attributes inherited from llvm::Metadata | |
| static constexpr const unsigned | PoisonGeneratingIDs [] |
| Metadata IDs that may generate poison. | |
| Protected Types inherited from llvm::MDNode | |
| using | mutable_op_range = iterator_range<MDOperand *> |
| Protected Types inherited from llvm::Metadata | |
| enum | StorageType { Uniqued , Distinct , Temporary } |
| Active type of storage. More... | |
| Static Protected Member Functions inherited from llvm::DINode | |
| static MDString * | getCanonicalMDString (LLVMContext &Context, StringRef S) |
| Static Protected Member Functions inherited from llvm::MDNode | |
| template<class T, class StoreT> | |
| static T * | storeImpl (T *N, StorageType Storage, StoreT &Store) |
| template<class T> | |
| static T * | storeImpl (T *N, StorageType Storage) |
| Protected Attributes inherited from llvm::Metadata | |
| unsigned char | Storage: 7 |
| Storage flag for non-uniqued, otherwise unowned, metadata. | |
| unsigned char | SubclassData1: 1 |
| unsigned short | SubclassData16 = 0 |
| unsigned | SubclassData32 = 0 |
Base class for scope-like contexts.
Base class for lexical scopes and types (which are also declaration contexts).
TODO: Separate the concepts of declaration contexts and lexical scopes.
Definition at line 571 of file DebugInfoMetadata.h.
|
inlineprotected |
Definition at line 573 of file DebugInfoMetadata.h.
References AbstractManglingParser< Derived, Alloc >::Ops, llvm::CallingConv::C, llvm::DINode::DINode(), llvm::Metadata::Storage, and llvm::Tag.
Referenced by llvm::DILocalScope::cloneScopeForSubprogram(), llvm::DICommonBlock::DEFINE_MDNODE_GET(), llvm::DIModule::DEFINE_MDNODE_GET(), llvm::DINamespace::DEFINE_MDNODE_GET(), llvm::DILocalScope::DILocalScope(), llvm::DIType::DIType(), getRawFile(), llvm::DICommonBlock::getScope(), llvm::DINamespace::getScope(), getScope(), llvm::DIType::getScope(), llvm::DICommonBlock::MDNode, llvm::DIModule::MDNode, and llvm::DINamespace::MDNode.
|
protecteddefault |
Definition at line 599 of file DebugInfoMetadata.h.
References llvm::Metadata::getMetadataID().
|
inline |
Definition at line 746 of file DebugInfoMetadata.h.
|
inline |
Definition at line 579 of file DebugInfoMetadata.h.
References llvm::cast_or_null(), and getRawFile().
Referenced by buildFrameDebugInfo(), FixupDebugInfoForOutlinedFunction(), fixupDebugInfoPostExtraction(), getDirectory(), getFilename(), getOrCreateRefVariable(), getSource(), ScopeLocationsMatcher::insert(), ScopeLocationsMatcher::match(), and updateScopeLine().
|
inline |
Definition at line 740 of file DebugInfoMetadata.h.
| StringRef DIScope::getName | ( | ) | const |
Definition at line 537 of file DebugInfoMetadata.cpp.
References assert(), llvm::dyn_cast(), llvm::isa(), and T.
Referenced by fixupDebugInfoPostExtraction().
|
inline |
Return the raw underlying file.
A DIFile is a DIScope, but it doesn't point at a separate file (it is the file). If this is an DIFile, we need to return this. Otherwise, return the first operand, which is where all other subclasses store their file pointer.
Definition at line 594 of file DebugInfoMetadata.h.
References DIScope(), llvm::MDNode::getOperand(), and llvm::isa().
Referenced by getFile().
| DIScope * DIScope::getScope | ( | ) | const |
Definition at line 513 of file DebugInfoMetadata.cpp.
References assert(), DIScope(), llvm::dyn_cast(), llvm::isa(), and T.
Referenced by getCommonClassOptions(), getNearestMatchingScope(), llvm::DwarfUnit::getParentContextString(), getRetainedNodeScope(), and isContained().
|
inline |
Definition at line 752 of file DebugInfoMetadata.h.