diff options
author | Chris Lattner <sabre@nondot.org> | 2010-03-01 07:17:40 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-03-01 07:17:40 +0000 |
commit | fa342faef9d1c89de356ed83a6c6529ed3e87610 (patch) | |
tree | a6d5a6fed6cb48fec62183639b79d8120e4b52a3 /utils/TableGen/DAGISelMatcherEmitter.cpp | |
parent | eb66921adb943ea841e72c8eee4777607c48b70e (diff) | |
download | llvm-fa342faef9d1c89de356ed83a6c6529ed3e87610.tar.gz llvm-fa342faef9d1c89de356ed83a6c6529ed3e87610.tar.bz2 llvm-fa342faef9d1c89de356ed83a6c6529ed3e87610.tar.xz |
eliminate the CheckMultiOpcodeMatcher code and have each
ComplexPattern at the root be generated multiple times, once
for each opcode they are part of. This encourages factoring
because the opcode checks get treated just like everything
else in the matcher.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97439 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/DAGISelMatcherEmitter.cpp')
-rw-r--r-- | utils/TableGen/DAGISelMatcherEmitter.cpp | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/utils/TableGen/DAGISelMatcherEmitter.cpp b/utils/TableGen/DAGISelMatcherEmitter.cpp index a828db3005..279f036b36 100644 --- a/utils/TableGen/DAGISelMatcherEmitter.cpp +++ b/utils/TableGen/DAGISelMatcherEmitter.cpp @@ -282,16 +282,7 @@ EmitMatcher(const Matcher *N, unsigned Indent, unsigned CurrentIdx, return CurrentIdx-StartIdx; } - case Matcher::CheckMultiOpcode: { - const CheckMultiOpcodeMatcher *CMO = cast<CheckMultiOpcodeMatcher>(N); - OS << "OPC_CheckMultiOpcode, " << CMO->getNumOpcodes() << ", "; - for (unsigned i = 0, e = CMO->getNumOpcodes(); i != e; ++i) - OS << CMO->getOpcode(i).getEnumName() << ", "; - OS << '\n'; - return 2 + CMO->getNumOpcodes(); - } - - case Matcher::CheckType: + case Matcher::CheckType: OS << "OPC_CheckType, " << getEnumName(cast<CheckTypeMatcher>(N)->getType()) << ",\n"; return 2; @@ -623,7 +614,6 @@ void MatcherTableEmitter::EmitHistogram(formatted_raw_ostream &OS) { case Matcher::CheckPredicate: OS << "OPC_CheckPredicate"; break; case Matcher::CheckOpcode: OS << "OPC_CheckOpcode"; break; case Matcher::SwitchOpcode: OS << "OPC_SwitchOpcode"; break; - case Matcher::CheckMultiOpcode: OS << "OPC_CheckMultiOpcode"; break; case Matcher::CheckType: OS << "OPC_CheckType"; break; case Matcher::CheckChildType: OS << "OPC_CheckChildType"; break; case Matcher::CheckInteger: OS << "OPC_CheckInteger"; break; |