|
LLVM
4.0.0
|
Base class for scope-like contexts. More...
#include <DebugInfoMetadata.h>
Static Public Member Functions | |
| static bool | classof (const Metadata *MD) |
Static Public Member Functions inherited from llvm::DINode | |
| static DIFlags | getFlag (StringRef Flag) |
| static StringRef | getFlagString (DIFlags Flag) |
| static DIFlags | splitFlags (DIFlags Flags, SmallVectorImpl< DIFlags > &SplitFlags) |
| Split up a flags bitfield. More... | |
| 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 void | deleteTemporary (MDNode *N) |
| Deallocate a node created by getTemporary. More... | |
| template<class T > | |
| static std::enable_if < std::is_base_of< MDNode, T > ::value, T * >::type | replaceWithPermanent (std::unique_ptr< T, TempMDNodeDeleter > N) |
| Replace a temporary node with a permanent one. More... | |
| template<class T > | |
| static std::enable_if < std::is_base_of< MDNode, T > ::value, T * >::type | replaceWithUniqued (std::unique_ptr< T, TempMDNodeDeleter > N) |
| Replace a temporary node with a uniqued one. More... | |
| template<class T > | |
| static std::enable_if < std::is_base_of< MDNode, T > ::value, T * >::type | replaceWithDistinct (std::unique_ptr< T, TempMDNodeDeleter > N) |
| Replace a temporary node with a distinct one. More... | |
| static bool | classof (const Metadata *MD) |
| Methods for support type inquiry through isa, cast, and dyn_cast: More... | |
| static MDNode * | concatenate (MDNode *A, MDNode *B) |
| Methods for metadata merging. More... | |
| static MDNode * | intersect (MDNode *A, MDNode *B) |
| static MDNode * | getMostGenericTBAA (MDNode *A, MDNode *B) |
| static MDNode * | getMostGenericFPMath (MDNode *A, MDNode *B) |
| static MDNode * | getMostGenericRange (MDNode *A, MDNode *B) |
| static MDNode * | getMostGenericAliasScope (MDNode *A, MDNode *B) |
| static MDNode * | getMostGenericAlignmentOrDereferenceable (MDNode *A, MDNode *B) |
Protected Member Functions | |
| DIScope (LLVMContext &C, unsigned ID, StorageType Storage, unsigned Tag, ArrayRef< Metadata * > Ops) | |
| ~DIScope ()=default | |
Protected Member Functions inherited from llvm::DINode | |
| DINode (LLVMContext &C, unsigned ID, StorageType Storage, unsigned Tag, ArrayRef< Metadata * > Ops1, ArrayRef< Metadata * > Ops2=None) | |
| ~DINode ()=default | |
| template<class Ty > | |
| Ty * | getOperandAs (unsigned I) const |
| StringRef | getStringOperand (unsigned I) const |
| void | setTag (unsigned Tag) |
| Allow subclasses to mutate the tag. More... | |
Protected Member Functions inherited from llvm::MDNode | |
| void * | operator new (size_t Size, unsigned NumOps) |
| void | operator delete (void *Mem) |
| void | operator delete (void *, unsigned) |
| Required by std, but never called. More... | |
| void | operator delete (void *, unsigned, bool) |
| Required by std, but never called. More... | |
| MDNode (LLVMContext &Context, unsigned ID, StorageType Storage, ArrayRef< Metadata * > Ops1, ArrayRef< Metadata * > Ops2=None) | |
| ~MDNode ()=default | |
| void | dropAllReferences () |
| MDOperand * | mutable_begin () |
| MDOperand * | mutable_end () |
| mutable_op_range | mutable_operands () |
| void | setOperand (unsigned I, Metadata *New) |
| Set an operand. More... | |
| void | storeDistinctInContext () |
Protected Member Functions inherited from llvm::Metadata | |
| Metadata (unsigned ID, StorageType Storage) | |
| ~Metadata ()=default | |
| void | handleChangedOperand (void *, Metadata *) |
| Default handling of a changed operand, which asserts. More... | |
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 | |
| typedef const MDOperand * | op_iterator |
| typedef iterator_range < op_iterator > | op_range |
Public Types inherited from llvm::Metadata | |
| enum | MetadataKind |
Protected Types inherited from llvm::MDNode | |
| typedef iterator_range < MDOperand * > | mutable_op_range |
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 |
| Storage flag for non-uniqued, otherwise unowned, metadata. More... | |
| unsigned short | SubclassData16 |
| unsigned | SubclassData32 |
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 418 of file DebugInfoMetadata.h.
|
inlineprotected |
Definition at line 420 of file DebugInfoMetadata.h.
|
protecteddefault |
Definition at line 445 of file DebugInfoMetadata.h.
References llvm::Metadata::getMetadataID().
|
inline |
Definition at line 541 of file DebugInfoMetadata.h.
Referenced by llvm::DwarfUnit::addSourceLine(), llvm::DwarfUnit::applySubprogramDefinitionAttributes(), and llvm::DwarfCompileUnit::constructImportedEntityDIE().
|
inline |
Definition at line 426 of file DebugInfoMetadata.h.
References getRawFile().
Referenced by getDirectory(), and getFilename().
|
inline |
Definition at line 535 of file DebugInfoMetadata.h.
Referenced by llvm::DwarfUnit::addSourceLine(), llvm::DwarfUnit::applySubprogramDefinitionAttributes(), and llvm::DwarfCompileUnit::constructImportedEntityDIE().
| StringRef DIScope::getName | ( | ) | const |
Definition at line 143 of file DebugInfoMetadata.cpp.
References assert().
Referenced by llvm::DwarfDebug::addSubprogramNames(), llvm::DwarfUnit::applySubprogramAttributes(), llvm::DwarfCompileUnit::applySubprogramAttributesToDefinition(), getFunctionName(), and getPrettyScopeName().
|
inline |
Return the raw underlying file.
An DIFile is an DIScope, but it doesn't point at a separate file (itis 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 440 of file DebugInfoMetadata.h.
References llvm::MDNode::getOperand().
Referenced by getFile(), llvm::MDNodeKeyImpl< DIDerivedType >::isKeyOf(), llvm::MDNodeKeyImpl< DICompositeType >::isKeyOf(), llvm::MDNodeKeyImpl< DISubprogram >::isKeyOf(), llvm::MDNodeKeyImpl< DILexicalBlock >::isKeyOf(), llvm::MDNodeKeyImpl< DILexicalBlockFile >::isKeyOf(), and llvm::MDNodeKeyImpl< DINamespace >::isKeyOf().
| DIScopeRef DIScope::getScope | ( | ) | const |
Definition at line 122 of file DebugInfoMetadata.cpp.
References assert().
Referenced by llvm::DwarfCompileUnit::applySubprogramAttributesToDefinition(), llvm::DILocation::cloneWithDiscriminator(), getFullyQualifiedName(), llvm::DwarfUnit::getOrCreateSubprogramDIE(), llvm::DwarfUnit::getParentContextString(), and getQualifiedNameComponents().
1.8.6