Slightly improve generated code in a degenerate case.
authorDale Johannesen <dalej@apple.com>
Tue, 12 May 2009 22:32:29 +0000 (22:32 +0000)
committerDale Johannesen <dalej@apple.com>
Tue, 12 May 2009 22:32:29 +0000 (22:32 +0000)
Should remove a warning from MSVC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71603 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/DAGISelEmitter.cpp

index 39791e2cba51cd22d0b11843f3d182adabf7b3a6..0e2e61596f69cd1597b61649826d285fe0322c26 100644 (file)
@@ -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;