Asmprint nameless instructions as:
authorChris Lattner <sabre@nondot.org>
Fri, 29 Aug 2008 17:19:30 +0000 (17:19 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 29 Aug 2008 17:19:30 +0000 (17:19 +0000)
%4 = add ...

instead of:

add ...    ; 4

This makes opt -print-cfg output actually usable and makes .ll files
generally easier to read.  This fixes PR2480

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

lib/VMCore/AsmWriter.cpp

index 21fb92578262c7d869515ec3d56a482659302571..80ecea3d6a9ce8a0bfdba3594c50367ecab5a125 100644 (file)
@@ -1486,7 +1486,7 @@ void AssemblyWriter::printInfoComment(const Value &V) {
     printType(V.getType());
     Out << '>';
 
-    if (!V.hasName()) {
+    if (!V.hasName() && !isa<Instruction>(V)) {
       int SlotNum;
       if (const GlobalValue *GV = dyn_cast<GlobalValue>(&V))
         SlotNum = Machine.getGlobalSlot(GV);
@@ -1511,6 +1511,13 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
   if (I.hasName()) {
     PrintLLVMName(Out, &I);
     Out << " = ";
+  } else if (I.getType() != Type::VoidTy) {
+    // Print out the def slot taken.
+    int SlotNum = Machine.getLocalSlot(&I);
+    if (SlotNum == -1)
+      Out << "<badref> = ";
+    else
+      Out << '%' << SlotNum << " = ";
   }
 
   // If this is a volatile load or store, print out the volatile marker.