diff options
author | Dale Johannesen <dalej@apple.com> | 2009-05-12 22:32:29 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2009-05-12 22:32:29 +0000 |
commit | df9cd7dfb7c0a81e4fb3be60933c95cee6effe7b (patch) | |
tree | dee1c9287d565661a60a3ebe85445dec92b7460f | |
parent | bd8b68ef67b4335d5fbab67af45b7d2ad9be9a3b (diff) | |
download | external_llvm-df9cd7dfb7c0a81e4fb3be60933c95cee6effe7b.zip external_llvm-df9cd7dfb7c0a81e4fb3be60933c95cee6effe7b.tar.gz external_llvm-df9cd7dfb7c0a81e4fb3be60933c95cee6effe7b.tar.bz2 |
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
-rw-r--r-- | utils/TableGen/DAGISelEmitter.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp index 39791e2..0e2e615 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; |