implement the last known missing feature: updating uses of results
of the matched pattern to use the newly created node results. Onto
the "making it actually work" phase!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96724 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/DAGISelMatcherEmitter.cpp b/utils/TableGen/DAGISelMatcherEmitter.cpp
index 077dd5d..de17005 100644
--- a/utils/TableGen/DAGISelMatcherEmitter.cpp
+++ b/utils/TableGen/DAGISelMatcherEmitter.cpp
@@ -305,13 +305,19 @@
OS << '\n';
return 5+EN->getNumVTs()+EN->getNumOperands();
}
- case MatcherNode::PatternMarker:
- OS << "// Src: "
- << *cast<PatternMarkerMatcherNode>(N)->getPattern().getSrcPattern() << '\n';
- OS.PadToColumn(Indent*2) << "// Dst: "
- << *cast<PatternMarkerMatcherNode>(N)->getPattern().getDstPattern() << '\n';
+ case MatcherNode::CompleteMatch: {
+ const CompleteMatchMatcherNode *CM = cast<CompleteMatchMatcherNode>(N);
+ OS << "OPC_CompleteMatch, " << CM->getNumResults() << ", ";
+ for (unsigned i = 0, e = CM->getNumResults(); i != e; ++i)
+ OS << CM->getResult(i) << ", ";
+ OS << '\n';
+ OS.PadToColumn(Indent*2) << "// Src: "
+ << *CM->getPattern().getSrcPattern() << '\n';
+ OS.PadToColumn(Indent*2) << "// Dst: "
+ << *CM->getPattern().getDstPattern() << '\n';
return 0;
}
+ }
assert(0 && "Unreachable");
return 0;
}