aboutsummaryrefslogtreecommitdiffstats
path: root/utils/TableGen/DAGISelMatcherEmitter.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-02-28 02:31:26 +0000
committerChris Lattner <sabre@nondot.org>2010-02-28 02:31:26 +0000
commite86097af5598e44727875f00e492d43c978239be (patch)
tree079307e8dd552052a12f9d35a526cda038c772c4 /utils/TableGen/DAGISelMatcherEmitter.cpp
parent6ac33b4533889f132ba10c812ae574d779c827b9 (diff)
downloadexternal_llvm-e86097af5598e44727875f00e492d43c978239be.zip
external_llvm-e86097af5598e44727875f00e492d43c978239be.tar.gz
external_llvm-e86097af5598e44727875f00e492d43c978239be.tar.bz2
add infrastructure to support forming selectnodeto. Not used yet
because I have to go on another detour first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97362 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/DAGISelMatcherEmitter.cpp')
-rw-r--r--utils/TableGen/DAGISelMatcherEmitter.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/utils/TableGen/DAGISelMatcherEmitter.cpp b/utils/TableGen/DAGISelMatcherEmitter.cpp
index 450a457..84e33f3 100644
--- a/utils/TableGen/DAGISelMatcherEmitter.cpp
+++ b/utils/TableGen/DAGISelMatcherEmitter.cpp
@@ -389,9 +389,11 @@ EmitMatcher(const Matcher *N, unsigned Indent, unsigned CurrentIdx,
return 3;
}
- case Matcher::EmitNode: {
- const EmitNodeMatcher *EN = cast<EmitNodeMatcher>(N);
- OS << "OPC_EmitNode, TARGET_OPCODE(" << EN->getOpcodeName() << "), 0";
+ case Matcher::EmitNode:
+ case Matcher::SelectNodeTo: {
+ const EmitNodeMatcherCommon *EN = cast<EmitNodeMatcherCommon>(N);
+ OS << (EN->isSelectNodeTo() ? "OPC_EmitNode" : "OPC_SelectNodeTo");
+ OS << ", TARGET_OPCODE(" << EN->getOpcodeName() << "), 0";
if (EN->hasChain()) OS << "|OPFL_Chain";
if (EN->hasFlag()) OS << "|OPFL_Flag";
@@ -564,6 +566,7 @@ void MatcherTableEmitter::EmitHistogram(formatted_raw_ostream &OS) {
case Matcher::EmitMergeInputChains: OS << "OPC_EmitMergeInputChains"; break;
case Matcher::EmitCopyToReg: OS << "OPC_EmitCopyToReg"; break;
case Matcher::EmitNode: OS << "OPC_EmitNode"; break;
+ case Matcher::SelectNodeTo: OS << "OPC_SelectNodeTo"; break;
case Matcher::EmitNodeXForm: OS << "OPC_EmitNodeXForm"; break;
case Matcher::MarkFlagResults: OS << "OPC_MarkFlagResults"; break;
case Matcher::CompleteMatch: OS << "OPC_CompleteMatch"; break;