mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-28 22:20:37 +00:00
IR: Split out writeMDTuple(), NFC
Prepare for more subclasses of `UniquableMDNode` than `MDTuple`. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225732 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
df545e8d6c
commit
120c186fde
@ -1249,12 +1249,9 @@ static void WriteConstantInternal(raw_ostream &Out, const Constant *CV,
|
||||
Out << "<placeholder or erroneous Constant>";
|
||||
}
|
||||
|
||||
static void WriteMDNodeBodyInternal(raw_ostream &Out, const MDNode *Node,
|
||||
TypePrinting *TypePrinter,
|
||||
SlotTracker *Machine,
|
||||
const Module *Context) {
|
||||
if (Node->isDistinct())
|
||||
Out << "distinct ";
|
||||
static void writeMDTuple(raw_ostream &Out, const MDTuple *Node,
|
||||
TypePrinting *TypePrinter, SlotTracker *Machine,
|
||||
const Module *Context) {
|
||||
Out << "!{";
|
||||
for (unsigned mi = 0, me = Node->getNumOperands(); mi != me; ++mi) {
|
||||
const Metadata *MD = Node->getOperand(mi);
|
||||
@ -1275,6 +1272,27 @@ static void WriteMDNodeBodyInternal(raw_ostream &Out, const MDNode *Node,
|
||||
Out << "}";
|
||||
}
|
||||
|
||||
static void WriteMDNodeBodyInternal(raw_ostream &Out, const MDNode *Node,
|
||||
TypePrinting *TypePrinter,
|
||||
SlotTracker *Machine,
|
||||
const Module *Context) {
|
||||
assert(isa<UniquableMDNode>(Node) && "Expected uniquable MDNode");
|
||||
|
||||
auto *Uniquable = cast<UniquableMDNode>(Node);
|
||||
if (Uniquable->isDistinct())
|
||||
Out << "distinct ";
|
||||
|
||||
switch (Uniquable->getMetadataID()) {
|
||||
default:
|
||||
llvm_unreachable("Expected uniquable MDNode");
|
||||
#define HANDLE_UNIQUABLE_LEAF(CLASS) \
|
||||
case Metadata::CLASS##Kind: \
|
||||
write##CLASS(Out, cast<CLASS>(Uniquable), TypePrinter, Machine, Context); \
|
||||
break;
|
||||
#include "llvm/IR/Metadata.def"
|
||||
}
|
||||
}
|
||||
|
||||
// Full implementation of printing a Value as an operand with support for
|
||||
// TypePrinting, etc.
|
||||
static void WriteAsOperandInternal(raw_ostream &Out, const Value *V,
|
||||
|
Loading…
Reference in New Issue
Block a user