Various AsmWriter output cleanups. Use WriteAsOperand instead of
PrintUnmangledNameSafely.

llvm-svn: 78878
diff --git a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
index d527485..178b7a2 100644
--- a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
+++ b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
@@ -21,6 +21,7 @@
 #include "ARMMachineFunctionInfo.h"
 #include "llvm/Constants.h"
 #include "llvm/Module.h"
+#include "llvm/Assembly/Writer.h"
 #include "llvm/CodeGen/AsmPrinter.h"
 #include "llvm/CodeGen/DwarfWriter.h"
 #include "llvm/CodeGen/MachineModuleInfo.h"
@@ -1128,16 +1129,6 @@
   return Result;
 }
 
-/// PrintUnmangledNameSafely - Print out the printable characters in the name.
-/// Don't print things like \\n or \\0.
-static void PrintUnmangledNameSafely(const Value *V, 
-                                     formatted_raw_ostream &OS) {
-  for (StringRef::iterator it = V->getName().begin(), 
-         ie = V->getName().end(); it != ie; ++it)
-    if (isprint(*it))
-      OS << *it;
-}
-
 void ARMAsmPrinter::PrintGlobalVariable(const GlobalVariable* GVar) {
   const TargetData *TD = TM.getTargetData();
 
@@ -1204,7 +1195,7 @@
           O << name << ":";
           if (VerboseAsm) {
             O << "\t\t\t\t" << TAI->getCommentString() << ' ';
-            PrintUnmangledNameSafely(GVar, O);
+            WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
           }
           O << '\n';
           EmitGlobalConstant(C);
@@ -1227,7 +1218,7 @@
       }
       if (VerboseAsm) {
         O << "\t\t" << TAI->getCommentString() << " ";
-        PrintUnmangledNameSafely(GVar, O);
+        WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
       }
       O << "\n";
       return;
@@ -1265,7 +1256,7 @@
   O << name << ":";
   if (VerboseAsm) {
     O << "\t\t\t\t" << TAI->getCommentString() << " ";
-    PrintUnmangledNameSafely(GVar, O);
+    WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
   }
   O << "\n";
   if (TAI->hasDotTypeDotSizeDirective())
diff --git a/llvm/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp b/llvm/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
index 0fd485a..3efcc92 100644
--- a/llvm/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
+++ b/llvm/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
@@ -487,16 +487,6 @@
   return Result;
 }
 
-/// PrintUnmangledNameSafely - Print out the printable characters in the name.
-/// Don't print things like \\n or \\0.
-static void PrintUnmangledNameSafely(const Value *V, 
-                                     formatted_raw_ostream &OS) {
-  for (StringRef::iterator it = V->getName().begin(), 
-         ie = V->getName().end(); it != ie; ++it)
-    if (isprint(*it))
-      OS << *it;
-}
-
 /*!
   Emit a global variable according to its section, alignment, etc.
 
@@ -541,7 +531,7 @@
         O << ".comm " << name << ',' << Size;
       }
       O << "\t\t" << TAI->getCommentString() << " '";
-      PrintUnmangledNameSafely(GVar, O);
+      WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
       O << "'\n";
       return;
   }
@@ -575,7 +565,7 @@
 
   EmitAlignment(Align, GVar);
   O << name << ":\t\t\t\t" << TAI->getCommentString() << " '";
-  PrintUnmangledNameSafely(GVar, O);
+  WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
   O << "'\n";
 
   EmitGlobalConstant(C);
diff --git a/llvm/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
index dce379e..e024b75 100644
--- a/llvm/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
+++ b/llvm/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
@@ -646,16 +646,6 @@
   return false;
 }
 
-/// PrintUnmangledNameSafely - Print out the printable characters in the name.
-/// Don't print things like \\n or \\0.
-static void PrintUnmangledNameSafely(const Value *V, 
-                                     formatted_raw_ostream &OS) {
-  for (StringRef::iterator it = V->getName().begin(), 
-         ie = V->getName().end(); it != ie; ++it)
-    if (isprint(*it))
-      OS << *it;
-}
-
 void PPCLinuxAsmPrinter::PrintGlobalVariable(const GlobalVariable *GVar) {
   const TargetData *TD = TM.getTargetData();
 
@@ -695,7 +685,7 @@
       }
       if (VerboseAsm) {
         O << "\t\t" << TAI->getCommentString() << " '";
-        PrintUnmangledNameSafely(GVar, O);
+        WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
         O << "'";
       }
       O << '\n';
@@ -732,7 +722,7 @@
   O << name << ":";
   if (VerboseAsm) {
     O << "\t\t\t\t" << TAI->getCommentString() << " '";
-    PrintUnmangledNameSafely(GVar, O);
+    WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
     O << "'";
   }
   O << '\n';
@@ -916,7 +906,7 @@
       O << name << ":";
       if (VerboseAsm) {
         O << "\t\t\t\t" << TAI->getCommentString() << " ";
-        PrintUnmangledNameSafely(GVar, O);
+        WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
       }
       O << '\n';
       EmitGlobalConstant(C);
@@ -929,7 +919,7 @@
     }
     if (VerboseAsm) {
       O << "\t\t" << TAI->getCommentString() << " '";
-      PrintUnmangledNameSafely(GVar, O);
+      WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
       O << "'";
     }
     O << '\n';
@@ -964,7 +954,7 @@
   O << name << ":";
   if (VerboseAsm) {
     O << "\t\t\t\t" << TAI->getCommentString() << " '";
-    PrintUnmangledNameSafely(GVar, O);
+    WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
     O << "'";
   }
   O << '\n';
diff --git a/llvm/lib/Target/SystemZ/AsmPrinter/SystemZAsmPrinter.cpp b/llvm/lib/Target/SystemZ/AsmPrinter/SystemZAsmPrinter.cpp
index 00ebf4c..de6ff96 100644
--- a/llvm/lib/Target/SystemZ/AsmPrinter/SystemZAsmPrinter.cpp
+++ b/llvm/lib/Target/SystemZ/AsmPrinter/SystemZAsmPrinter.cpp
@@ -19,6 +19,7 @@
 #include "llvm/Constants.h"
 #include "llvm/DerivedTypes.h"
 #include "llvm/Module.h"
+#include "llvm/Assembly/Writer.h"
 #include "llvm/CodeGen/AsmPrinter.h"
 #include "llvm/CodeGen/DwarfWriter.h"
 #include "llvm/CodeGen/MachineModuleInfo.h"
@@ -297,16 +298,6 @@
     assert(!Index.getReg() && "Should allocate base register first!");
 }
 
-/// PrintUnmangledNameSafely - Print out the printable characters in the name.
-/// Don't print things like \\n or \\0.
-static void PrintUnmangledNameSafely(const Value *V, 
-                                     formatted_raw_ostream &OS) {
-  for (StringRef::iterator it = V->getName().begin(), 
-         ie = V->getName().end(); it != ie; ++it)
-    if (isprint(*it))
-      OS << *it;
-}
-
 void SystemZAsmPrinter::PrintGlobalVariable(const GlobalVariable* GVar) {
   const TargetData *TD = TM.getTargetData();
 
@@ -343,7 +334,7 @@
 
     if (VerboseAsm) {
       O << "\t\t" << TAI->getCommentString() << ' ';
-      PrintUnmangledNameSafely(GVar, O);
+      WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
     }
     O << '\n';
     return;
@@ -378,7 +369,7 @@
   O << name << ":";
   if (VerboseAsm) {
     O << "\t\t\t\t" << TAI->getCommentString() << ' ';
-    PrintUnmangledNameSafely(GVar, O);
+    WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
   }
   O << '\n';
   if (TAI->hasDotTypeDotSizeDirective())
diff --git a/llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp b/llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
index 31a979d..ae5f59e 100644
--- a/llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
+++ b/llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
@@ -26,6 +26,7 @@
 #include "llvm/Type.h"
 #include "llvm/ADT/Statistic.h"
 #include "llvm/ADT/StringExtras.h"
+#include "llvm/Assembly/Writer.h"
 #include "llvm/MC/MCContext.h"
 #include "llvm/MC/MCInst.h"
 #include "llvm/MC/MCSectionMachO.h"
@@ -59,16 +60,6 @@
     llvm_unreachable("Don't know how to print PIC label!");
 }
 
-/// PrintUnmangledNameSafely - Print out the printable characters in the name.
-/// Don't print things like \\n or \\0.
-static void PrintUnmangledNameSafely(const Value *V, 
-                                     formatted_raw_ostream &OS) {
-  for (StringRef::iterator it = V->getName().begin(), 
-         ie = V->getName().end(); it != ie; ++it)
-    if (isprint(*it))
-      OS << *it;
-}
-
 static X86MachineFunctionInfo calculateFunctionInfo(const Function *F,
                                                     const TargetData *TD) {
   X86MachineFunctionInfo Info;
@@ -208,7 +199,14 @@
       << ";\t.endef\n";
   }
 
-  O << CurrentFnName << ":\n";
+  O << CurrentFnName << ':';
+  if (VerboseAsm) {
+    O.PadToColumn(TAI->getCommentColumn(), 1);
+    O << TAI->getCommentString() << ' ';
+    WriteAsOperand(O, F, /*PrintType=*/false, F->getParent());
+  }
+  O << '\n';
+
   // Add some workaround for linkonce linkage on Cygwin\MinGW
   if (Subtarget->isTargetCygMing() &&
       (F->hasLinkOnceLinkage() || F->hasWeakLinkage()))
@@ -403,7 +401,7 @@
     O << MO.getImm();
     return;
   case MachineOperand::MO_MachineBasicBlock:
-    printBasicBlockLabel(MO.getMBB(), false, false, VerboseAsm);
+    printBasicBlockLabel(MO.getMBB(), false, false, false);
     return;
   case MachineOperand::MO_GlobalAddress:
   case MachineOperand::MO_ExternalSymbol:
@@ -818,7 +816,7 @@
           if (VerboseAsm) {
             O.PadToColumn(TAI->getCommentColumn(), 1);
             O << TAI->getCommentString() << ' ';
-            PrintUnmangledNameSafely(GVar, O);
+            WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
           }
           O << '\n';
           EmitGlobalConstant(C);
@@ -840,7 +838,7 @@
       if (VerboseAsm) {
         O.PadToColumn(TAI->getCommentColumn(), 1);
         O << TAI->getCommentString() << ' ';
-        PrintUnmangledNameSafely(GVar, O);
+        WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
       }
       O << '\n';
       return;
@@ -884,13 +882,14 @@
   if (VerboseAsm){
     O.PadToColumn(TAI->getCommentColumn(), 1);
     O << TAI->getCommentString() << ' ';
-    PrintUnmangledNameSafely(GVar, O);
+    WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
   }
   O << '\n';
-  if (TAI->hasDotTypeDotSizeDirective())
-    O << "\t.size\t" << name << ", " << Size << '\n';
 
   EmitGlobalConstant(C);
+
+  if (TAI->hasDotTypeDotSizeDirective())
+    O << "\t.size\t" << name << ", " << Size << '\n';
 }
 
 bool X86ATTAsmPrinter::doFinalization(Module &M) {
diff --git a/llvm/lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp b/llvm/lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp
index 8b4ca58f..00d0ddb 100644
--- a/llvm/lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp
+++ b/llvm/lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp
@@ -273,7 +273,7 @@
     O << MO.getImm();
     return;
   case MachineOperand::MO_MachineBasicBlock:
-    printBasicBlockLabel(MO.getMBB());
+    printBasicBlockLabel(MO.getMBB(), false, false, false);
     return;
     
   case MachineOperand::MO_GlobalAddress: {