|
LLVM 24.0.0git
|
Tuple of metadata. More...
#include "llvm/IR/Metadata.h"
Public Member Functions | |
| unsigned | getHash () const |
| Get the hash, if any. | |
| TempMDTuple | clone () const |
| Return a (temporary) clone of this. | |
| void | push_back (Metadata *MD) |
| Append an element to the tuple. This will resize the node. | |
| void | pop_back () |
| Shrink the operands by 1. | |
| template<typename T> | |
| MDTuple * | filter (T &&Pred) |
| Filter out tuple elements that do not satisfy predicate. | |
| Public Member Functions inherited from llvm::MDNode | |
| MDNode (const MDNode &)=delete | |
| void | operator= (const MDNode &)=delete |
| void * | operator new (size_t)=delete |
| LLVM_ABI TempMDNode | clone () const |
| Create a (temporary) clone of this. | |
| LLVMContext & | getContext () const |
| LLVM_ABI void | replaceOperandWith (unsigned I, Metadata *New) |
| Replace a specific operand. | |
| bool | isResolved () const |
| Check if node is fully resolved. | |
| bool | isUniqued () const |
| bool | isDistinct () const |
| bool | isTemporary () const |
| bool | isReplaceable () const |
| bool | isAlwaysReplaceable () const |
| unsigned | getNumTemporaryUses () const |
| void | replaceAllUsesWith (Metadata *MD) |
| RAUW a temporary. | |
| LLVM_ABI void | resolveCycles () |
| Resolve cycles. | |
| LLVM_ABI void | resolve () |
| Resolve a unique, unresolved node. | |
| op_iterator | op_begin () const |
| op_iterator | op_end () const |
| ArrayRef< MDOperand > | operands () const |
| const MDOperand & | getOperand (unsigned I) const |
| unsigned | getNumOperands () const |
| Return number of MDNode operands. | |
| LLVM_ABI bool | isTBAAVtableAccess () const |
| Check whether MDNode is a vtable access. | |
| LLVM_ABI void | printTree (raw_ostream &OS, const Module *M=nullptr) const |
| Print in tree shape. | |
| LLVM_ABI void | printTree (raw_ostream &OS, ModuleSlotTracker &MST, const Module *M=nullptr) const |
| LLVM_ABI void | dumpTree () const |
| User-friendly dump in tree shape. | |
| LLVM_ABI void | dumpTree (const Module *M) const |
| Public Member Functions inherited from llvm::Metadata | |
| unsigned | getMetadataID () const |
| LLVM_ABI void | dump () const |
| User-friendly dump. | |
| LLVM_ABI void | dump (const Module *M) const |
| LLVM_ABI void | print (raw_ostream &OS, const Module *M=nullptr, bool IsForDebug=false) const |
| Print. | |
| LLVM_ABI void | print (raw_ostream &OS, ModuleSlotTracker &MST, const Module *M=nullptr, bool IsForDebug=false) const |
| LLVM_ABI void | printAsOperand (raw_ostream &OS, const Module *M=nullptr) const |
| Print as operand. | |
| LLVM_ABI void | printAsOperand (raw_ostream &OS, ModuleSlotTracker &MST, const Module *M=nullptr) const |
Friends | |
| class | LLVMContextImpl |
| class | MDNode |
Additional Inherited Members | |
| 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... | |
| Protected Member Functions inherited from llvm::MDNode | |
| LLVM_ABI | MDNode (LLVMContext &Context, unsigned ID, StorageType Storage, ArrayRef< Metadata * > Ops1, ArrayRef< Metadata * > Ops2={}) |
| ~MDNode ()=default | |
| LLVM_ABI void * | operator new (size_t Size, size_t NumOps, StorageType Storage) |
| LLVM_ABI void | operator delete (void *Mem) |
| void | operator delete (void *, unsigned) |
| Required by std, but never called. | |
| void | operator delete (void *, unsigned, bool) |
| Required by std, but never called. | |
| LLVM_ABI void | dropAllReferences () |
| MDOperand * | mutable_begin () |
| MDOperand * | mutable_end () |
| mutable_op_range | mutable_operands () |
| LLVM_ABI void | setOperand (unsigned I, Metadata *New) |
| Set an operand. | |
| unsigned | getNumUnresolved () const |
| void | setNumUnresolved (unsigned N) |
| LLVM_ABI void | storeDistinctInContext () |
| void | resize (size_t NumOps) |
| Resize the node to hold NumOps operands. | |
| 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. | |
| 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 |
Tuple of metadata.
This is the simple MDNode arbitrary tuple. Nodes are uniqued by default based on their operands.
Definition at line 1484 of file Metadata.h.
Definition at line 1562 of file Metadata.h.
References llvm::Metadata::getMetadataID().
|
inline |
Return a (temporary) clone of this.
Definition at line 1539 of file Metadata.h.
Filter out tuple elements that do not satisfy predicate.
Return this if no elements should be filtered out (without re-uniquing).
Definition at line 1553 of file Metadata.h.
References AbstractManglingParser< Derived, Alloc >::Ops, llvm::all_of(), get(), llvm::MDNode::getContext(), llvm::make_filter_range(), llvm::MDNode::operands(), T, and llvm::to_vector_of().
|
inlinestatic |
Definition at line 1513 of file Metadata.h.
References llvm::Metadata::Uniqued.
Referenced by llvm::Instruction::addAnnotationMetadata(), llvm::Instruction::addAnnotationMetadata(), llvm::GlobalObject::addTypeMetadata(), annotateFunctionWithHashMismatch(), llvm::SPIRVGlobalRegistry::buildAssignType(), llvm::MMRAMetadata::combine(), filter(), llvm::DIBuilder::finalize(), llvm::DIBuilder::finalizeSubprogram(), llvm::MDNode::get(), getKeyFPValMD(), getKeyValMD(), getKeyValMD(), llvm::MMRAMetadata::getMD(), llvm::ProfileSummary::getMD(), llvm::DIBuilder::getOrCreateArray(), llvm::DIBuilder::getOrCreateMacroArray(), llvm::MMRAMetadata::getTagMD(), makeVectorizeEnableNode(), llvm::dxil::DXILDebugInfoPass::run(), stripDeadDebugInfoImpl(), llvm::upgradeInstructionLoopAttachment(), and upgradeLoopArgument().
|
inlinestatic |
Return a distinct node.
Return a distinct node – i.e., a node that is not uniqued.
Definition at line 1524 of file Metadata.h.
References llvm::Metadata::Distinct.
Referenced by addModuleFlags(), llvm::MDNode::getDistinct(), and llvm::StripDeadCGProfilePass::run().
|
inline |
Get the hash, if any.
Definition at line 1511 of file Metadata.h.
References llvm::Metadata::SubclassData32.
|
inlinestatic |
Definition at line 1517 of file Metadata.h.
References llvm::Metadata::Uniqued.
Referenced by llvm::MDNode::getIfExists().
|
inlinestatic |
Return a temporary node.
For use in constructing cyclic MDNode structures. A temporary MDNode is not uniqued, may be RAUW'd, and must be manually deleted with deleteTemporary.
Definition at line 1533 of file Metadata.h.
References llvm::Metadata::Temporary.
Referenced by llvm::MDNode::getTemporary(), and LLVMTemporaryMDNode().
|
inline |
Shrink the operands by 1.
Definition at line 1549 of file Metadata.h.
References llvm::MDNode::getNumOperands(), and llvm::MDNode::resize().
|
inline |
Append an element to the tuple. This will resize the node.
Definition at line 1542 of file Metadata.h.
References AbstractManglingParser< Derived, Alloc >::NumOps, llvm::MDNode::getNumOperands(), llvm::MDNode::resize(), and llvm::MDNode::setOperand().
Referenced by createMIBNode().
|
friend |
Definition at line 1485 of file Metadata.h.
References LLVMContextImpl.
Referenced by LLVMContextImpl.
|
friend |
Definition at line 1486 of file Metadata.h.
References C(), MDNode, and llvm::Metadata::Storage.
Referenced by MDNode.