summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2009-05-12 22:32:29 +0000
committerDale Johannesen <dalej@apple.com>2009-05-12 22:32:29 +0000
commit3b895cfac99babcf0e4fe80af1c70e11760abb77 (patch)
treedee1c9287d565661a60a3ebe85445dec92b7460f /utils
parentc93f96187459b1f09b328e3cf6eade173909ce53 (diff)
downloadllvm-3b895cfac99babcf0e4fe80af1c70e11760abb77.tar.gz
llvm-3b895cfac99babcf0e4fe80af1c70e11760abb77.tar.bz2
llvm-3b895cfac99babcf0e4fe80af1c70e11760abb77.tar.xz
Slightly improve generated code in a degenerate case.
Should remove a warning from MSVC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71603 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r--utils/TableGen/DAGISelEmitter.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp
index 39791e2cba..0e2e61596f 100644
--- a/utils/TableGen/DAGISelEmitter.cpp
+++ b/utils/TableGen/DAGISelEmitter.cpp
@@ -2025,6 +2025,14 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
OpcodeVTMap.find(OpName);
std::vector<std::string> &OpVTs = OpVTI->second;
OS << " case " << OpName << ": {\n";
+ // If we have only one variant and it's the default, elide the
+ // switch. Marginally faster, and makes MSVC happier.
+ if (OpVTs.size()==1 && OpVTs[0].empty()) {
+ OS << " return Select_" << getLegalCName(OpName) << "(N);\n";
+ OS << " break;\n";
+ OS << " }\n";
+ continue;
+ }
// Keep track of whether we see a pattern that has an iPtr result.
bool HasPtrPattern = false;
bool HasDefaultPattern = false;