|
LLVM
4.0.0
|
Tuple of metadata. More...
#include <Metadata.h>
Public Member Functions | |
| unsigned | getHash () const |
| Get the hash, if any. More... | |
| TempMDTuple | clone () const |
| Return a (temporary) clone of this. More... | |
Public Member Functions inherited from llvm::MDNode | |
| MDNode (const MDNode &)=delete | |
| void | operator= (const MDNode &)=delete |
| void * | operator new (size_t)=delete |
| TempMDNode | clone () const |
| Create a (temporary) clone of this. More... | |
| LLVMContext & | getContext () const |
| void | replaceOperandWith (unsigned I, Metadata *New) |
| Replace a specific operand. More... | |
| bool | isResolved () const |
| Check if node is fully resolved. More... | |
| bool | isUniqued () const |
| bool | isDistinct () const |
| bool | isTemporary () const |
| void | replaceAllUsesWith (Metadata *MD) |
| RAUW a temporary. More... | |
| void | resolveCycles () |
| Resolve cycles. More... | |
| op_iterator | op_begin () const |
| op_iterator | op_end () const |
| op_range | operands () const |
| const MDOperand & | getOperand (unsigned I) const |
| unsigned | getNumOperands () const |
| Return number of MDNode operands. More... | |
| bool | isTBAAVtableAccess () const |
| Check whether MDNode is a vtable access. More... | |
Public Member Functions inherited from llvm::Metadata | |
| 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, bool IsForDebug=false) const |
| Print. More... | |
| void | print (raw_ostream &OS, ModuleSlotTracker &MST, const Module *M=nullptr, bool IsForDebug=false) 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 |
Static Public Member Functions | |
| static MDTuple * | get (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
| static MDTuple * | getIfExists (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
| static MDTuple * | getDistinct (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
| Return a distinct node. More... | |
| static TempMDTuple | getTemporary (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
| Return a temporary node. 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) |
Friends | |
| class | LLVMContextImpl |
| class | MDNode |
Additional Inherited Members | |
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... | |
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... | |
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 |
Tuple of metadata.
This is the simple MDNode arbitrary tuple. Nodes are uniqued by default based on their operands.
Definition at line 1072 of file Metadata.h.
Definition at line 1127 of file Metadata.h.
References llvm::Metadata::getMetadataID().
|
inline |
Return a (temporary) clone of this.
Definition at line 1125 of file Metadata.h.
|
inlinestatic |
Definition at line 1099 of file Metadata.h.
References Context, getImpl(), and llvm::Metadata::Uniqued.
Referenced by llvm::GlobalObject::addTypeMetadata(), llvm::DIBuilder::finalize(), llvm::MDNode::get(), getKeyValMD(), llvm::ProfileSummary::getMD(), llvm::DIBuilder::getOrCreateArray(), and llvm::DIBuilder::getOrCreateMacroArray().
|
inlinestatic |
Return a distinct node.
Return a distinct node – i.e., a node that is not uniqued.
Definition at line 1110 of file Metadata.h.
References llvm::Metadata::Distinct, and getImpl().
Referenced by llvm::MDNode::getDistinct().
|
inline |
Get the hash, if any.
Definition at line 1097 of file Metadata.h.
References llvm::Metadata::SubclassData32.
|
inlinestatic |
Definition at line 1103 of file Metadata.h.
References getImpl(), and 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 1119 of file Metadata.h.
References getImpl(), and llvm::Metadata::Temporary.
Referenced by CloneAliasScopeMetadata(), llvm::DIBuilder::createFunction(), and llvm::MDNode::getTemporary().
|
friend |
Definition at line 1073 of file Metadata.h.
|
friend |
Definition at line 1074 of file Metadata.h.
1.8.6