mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-24 21:25:41 +00:00
IR: MDNode => Value: Add Instruction::getMDNode()
Add `Instruction::getMDNode()` that casts to `MDNode` before changing `Instruction::getMetadata()` to return `Value`. This avoids adding `cast_or_null<MDNode>` boiler-plate throughout the code. Part of PR21433. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221023 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8d2e511d3b
commit
9ed44978ef
@ -153,6 +153,24 @@ public:
|
||||
return getMetadataImpl(Kind);
|
||||
}
|
||||
|
||||
/// Get the the metadata as an MDNode.
|
||||
///
|
||||
/// \pre Any KindID metadata is implemented using \a MDNode.
|
||||
MDNode *getMDNode(unsigned KindID) const {
|
||||
if (!hasMetadata())
|
||||
return nullptr;
|
||||
return getMDNodeImpl(KindID);
|
||||
}
|
||||
|
||||
/// Get the the metadata as an MDNode.
|
||||
///
|
||||
/// \pre Any KindID metadata is implemented using \a MDNode.
|
||||
MDNode *getMDNode(StringRef Kind) const {
|
||||
if (!hasMetadata())
|
||||
return nullptr;
|
||||
return getMDNodeImpl(Kind);
|
||||
}
|
||||
|
||||
/// getAllMetadata - Get all metadata attached to this Instruction. The first
|
||||
/// element of each pair returned is the KindID, the second element is the
|
||||
/// metadata value. This list is returned sorted by the KindID.
|
||||
@ -273,6 +291,8 @@ private:
|
||||
// These are all implemented in Metadata.cpp.
|
||||
MDNode *getMetadataImpl(unsigned KindID) const;
|
||||
MDNode *getMetadataImpl(StringRef Kind) const;
|
||||
MDNode *getMDNodeImpl(unsigned KindID) const;
|
||||
MDNode *getMDNodeImpl(StringRef Kind) const;
|
||||
void getAllMetadataImpl(SmallVectorImpl<std::pair<unsigned,MDNode*> > &)const;
|
||||
void getAllMetadataOtherThanDebugLocImpl(SmallVectorImpl<std::pair<unsigned,
|
||||
MDNode*> > &) const;
|
||||
|
@ -609,6 +609,14 @@ MDNode *Instruction::getMetadataImpl(StringRef Kind) const {
|
||||
return getMetadataImpl(getContext().getMDKindID(Kind));
|
||||
}
|
||||
|
||||
MDNode *Instruction::getMDNodeImpl(unsigned KindID) const {
|
||||
return getMetadataImpl(KindID);
|
||||
}
|
||||
|
||||
MDNode *Instruction::getMDNodeImpl(StringRef Kind) const {
|
||||
return getMetadataImpl(Kind);
|
||||
}
|
||||
|
||||
void Instruction::dropUnknownMetadata(ArrayRef<unsigned> KnownIDs) {
|
||||
SmallSet<unsigned, 5> KnownSet;
|
||||
KnownSet.insert(KnownIDs.begin(), KnownIDs.end());
|
||||
|
Loading…
x
Reference in New Issue
Block a user