|
LLVM
3.7.0
|
Root of the metadata hierarchy. More...
#include <Metadata.h>
Public Member Functions | |
| unsigned | getMetadataID () const |
| void | dump () const |
| User-friendly dump. More... | |
| void | dump (const Module *M) const |
| void | print (raw_ostream &OS, const Module *M=nullptr) const |
| Print. More... | |
| void | print (raw_ostream &OS, ModuleSlotTracker &MST, const Module *M=nullptr) const |
| void | printAsOperand (raw_ostream &OS, const Module *M=nullptr) const |
| Print as operand. More... | |
| void | printAsOperand (raw_ostream &OS, ModuleSlotTracker &MST, const Module *M=nullptr) const |
Protected Types | |
| enum | StorageType { Uniqued, Distinct, Temporary } |
| Active type of storage. More... | |
Protected Member Functions | |
| Metadata (unsigned ID, StorageType Storage) | |
| ~Metadata ()=default | |
| void | handleChangedOperand (void *, Metadata *) |
| Default handling of a changed operand, which asserts. More... | |
Protected Attributes | |
| unsigned | Storage: 2 |
| Storage flag for non-uniqued, otherwise unowned, metadata. More... | |
| unsigned short | SubclassData16 |
| unsigned | SubclassData32 |
Friends | |
| class | ReplaceableMetadataImpl |
Root of the metadata hierarchy.
This is a root class for typeless data in the IR.
Definition at line 45 of file Metadata.h.
Definition at line 63 of file Metadata.h.
|
protected |
Active type of storage.
| Enumerator | |
|---|---|
| Uniqued | |
| Distinct | |
| Temporary | |
Definition at line 53 of file Metadata.h.
|
inlineprotected |
Definition at line 93 of file Metadata.h.
|
protecteddefault |
| LLVM_DUMP_METHOD void Metadata::dump | ( | ) | const |
User-friendly dump.
If M is provided, metadata nodes will be numbered canonically; otherwise, pointer addresses are substituted.
Note: this uses an explicit overload instead of default arguments so that the nullptr version is easy to call from a debugger.
Definition at line 3372 of file AsmWriter.cpp.
Referenced by llvm::LexicalScope::dump().
| LLVM_DUMP_METHOD void Metadata::dump | ( | const Module * | M | ) | const |
Definition at line 3375 of file AsmWriter.cpp.
References llvm::dbgs(), and print().
|
inline |
Definition at line 107 of file Metadata.h.
Referenced by llvm::DINode::classof(), llvm::ValueAsMetadata::classof(), llvm::GenericDINode::classof(), llvm::ConstantAsMetadata::classof(), llvm::DISubrange::classof(), llvm::LocalAsMetadata::classof(), llvm::DIEnumerator::classof(), llvm::DIScope::classof(), llvm::DIFile::classof(), llvm::MDString::classof(), llvm::DIType::classof(), llvm::DIBasicType::classof(), llvm::DIDerivedTypeBase::classof(), llvm::DICompositeTypeBase::classof(), llvm::MDNode::classof(), llvm::DISubroutineType::classof(), llvm::MDTuple::classof(), llvm::DICompileUnit::classof(), llvm::DILocalScope::classof(), llvm::DILocation::classof(), llvm::DISubprogram::classof(), llvm::DILexicalBlockBase::classof(), llvm::DILexicalBlock::classof(), llvm::DILexicalBlockFile::classof(), llvm::DINamespace::classof(), llvm::DIModule::classof(), llvm::DITemplateParameter::classof(), llvm::DITemplateTypeParameter::classof(), llvm::DITemplateValueParameter::classof(), llvm::DIVariable::classof(), llvm::DIGlobalVariable::classof(), llvm::DILocalVariable::classof(), llvm::DIExpression::classof(), llvm::DIObjCProperty::classof(), llvm::DIImportedEntity::classof(), llvm::MDNode::clone(), llvm::ReplaceableMetadataImpl::replaceAllUsesWith(), and llvm::MDNode::storeDistinctInContext().
|
inlineprotected |
Default handling of a changed operand, which asserts.
If subclasses pass themselves in as owners to a tracking node reference, they must provide an implementation of this method.
Definition at line 102 of file Metadata.h.
References llvm_unreachable.
| void Metadata::print | ( | raw_ostream & | OS, |
| const Module * | M = nullptr |
||
| ) | const |
Print.
Prints definition of this.
If M is provided, metadata nodes will be numbered canonically; otherwise, pointer addresses are substituted.
Definition at line 3341 of file AsmWriter.cpp.
References printMetadataImpl().
Referenced by dump(), llvm::operator<<(), and llvm::ValueEnumerator::print().
| void Metadata::print | ( | raw_ostream & | OS, |
| ModuleSlotTracker & | MST, | ||
| const Module * | M = nullptr |
||
| ) | const |
Definition at line 3346 of file AsmWriter.cpp.
References printMetadataImpl().
| void Metadata::printAsOperand | ( | raw_ostream & | OS, |
| const Module * | M = nullptr |
||
| ) | const |
Print as operand.
Prints reference of this.
If M is provided, metadata nodes will be numbered canonically; otherwise, pointer addresses are substituted.
Definition at line 3331 of file AsmWriter.cpp.
References printMetadataImpl().
| void Metadata::printAsOperand | ( | raw_ostream & | OS, |
| ModuleSlotTracker & | MST, | ||
| const Module * | M = nullptr |
||
| ) | const |
Definition at line 3336 of file AsmWriter.cpp.
References printMetadataImpl().
|
friend |
Definition at line 46 of file Metadata.h.
|
protected |
Storage flag for non-uniqued, otherwise unowned, metadata.
Definition at line 56 of file Metadata.h.
Referenced by llvm::MDNode::isDistinct(), llvm::MDNode::isTemporary(), and llvm::MDNode::isUniqued().
|
protected |
Definition at line 59 of file Metadata.h.
Referenced by llvm::DINode::DINode(), llvm::DINode::getTag(), and llvm::GenericDINode::getTag().
|
protected |
Definition at line 60 of file Metadata.h.
Referenced by llvm::GenericDINode::getHash(), and llvm::MDTuple::getHash().
1.8.6