diff options
author | Chris Lattner <sabre@nondot.org> | 2010-03-28 05:50:16 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-03-28 05:50:16 +0000 |
commit | aa4e3391c8814c6ce0bbc530ea4d5905414b2763 (patch) | |
tree | e48f7f81d795b64e9fb4b87ae3b862c8fa5e3292 /utils | |
parent | 856fb395e46a8d485081acbf11928047d852c636 (diff) | |
download | external_llvm-aa4e3391c8814c6ce0bbc530ea4d5905414b2763.zip external_llvm-aa4e3391c8814c6ce0bbc530ea4d5905414b2763.tar.gz external_llvm-aa4e3391c8814c6ce0bbc530ea4d5905414b2763.tar.bz2 |
add an optimized form of OPC_EmitMergeInputChains for the 1, 0 and
1, 1 cases which are by-far the most frequent. This shrinks the X86
isel table from 77014 -> 74657 bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99740 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r-- | utils/TableGen/DAGISelMatcherEmitter.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/utils/TableGen/DAGISelMatcherEmitter.cpp b/utils/TableGen/DAGISelMatcherEmitter.cpp index 8855034..25b7a2f 100644 --- a/utils/TableGen/DAGISelMatcherEmitter.cpp +++ b/utils/TableGen/DAGISelMatcherEmitter.cpp @@ -449,6 +449,13 @@ EmitMatcher(const Matcher *N, unsigned Indent, unsigned CurrentIdx, case Matcher::EmitMergeInputChains: { const EmitMergeInputChainsMatcher *MN = cast<EmitMergeInputChainsMatcher>(N); + + // Handle the specialized forms OPC_EmitMergeInputChains1_0 and 1_1. + if (MN->getNumNodes() == 1 && MN->getNode(0) < 2) { + OS << "OPC_EmitMergeInputChains1_" << MN->getNode(0) << ",\n"; + return 1; + } + OS << "OPC_EmitMergeInputChains, " << MN->getNumNodes() << ", "; for (unsigned i = 0, e = MN->getNumNodes(); i != e; ++i) OS << MN->getNode(i) << ", "; |