Handle the last operand more intelligently. When emitting the \n, also
authorChris Lattner <sabre@nondot.org>
Tue, 18 Jul 2006 17:50:22 +0000 (17:50 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 18 Jul 2006 17:50:22 +0000 (17:50 +0000)
return from the asmprinter to make the generated asmprinter both more
efficient and smaller.

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

utils/TableGen/AsmWriterEmitter.cpp

index 9802c3aaf548a2889ec96acea9a488c4f97115d6..7162590cc1da5a22358ef2b0ca53b499f7eefcbd 100644 (file)
@@ -345,12 +345,14 @@ FindUniqueOperandCommands(std::vector<std::string> &UniqueOperandCommands,
     if (Inst == 0) continue;  // PHI, INLINEASM, etc.
     
     std::string Command;
-    if (Op > Inst->Operands.size())
+    if (Op >= Inst->Operands.size())
       continue;   // Instruction already done.
-    else if (Op == Inst->Operands.size())
-      Command = "    return true;\n";
-    else
-      Command = "    " + Inst->Operands[Op].getCode() + "\n";
+
+    Command = "    " + Inst->Operands[Op].getCode() + "\n";
+
+    // If this is the last operand, emit a return.
+    if (Op == Inst->Operands.size()-1)
+      Command += "    return true;\n";
     
     // Check to see if we already have 'Command' in UniqueOperandCommands.
     // If not, add it.