[llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp

Jim Laskey jlaskey at apple.com
Mon Feb 27 02:34:06 PST 2006



Changes in directory llvm/lib/VMCore:

AsmWriter.cpp updated: 1.193 -> 1.194
---
Log message:

Pretty print large struct constants.


---
Diffs of the changes:  (+10 -1)

 AsmWriter.cpp |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletion(-)


Index: llvm/lib/VMCore/AsmWriter.cpp
diff -u llvm/lib/VMCore/AsmWriter.cpp:1.193 llvm/lib/VMCore/AsmWriter.cpp:1.194
--- llvm/lib/VMCore/AsmWriter.cpp:1.193	Sun Feb 26 04:16:05 2006
+++ llvm/lib/VMCore/AsmWriter.cpp	Mon Feb 27 04:33:53 2006
@@ -419,6 +419,8 @@
                              bool PrintName,
                              std::map<const Type *, std::string> &TypeTable,
                              SlotMachine *Machine) {
+  const int IndentSize = 4;
+  static std::string Indent = "\n";
   if (const ConstantBool *CB = dyn_cast<ConstantBool>(CV)) {
     Out << (CB == ConstantBool::True ? "true" : "false");
   } else if (const ConstantSInt *CI = dyn_cast<ConstantSInt>(CV)) {
@@ -484,7 +486,12 @@
     Out << '{';
     unsigned N = CS->getNumOperands();
     if (N) {
-      Out << ' ';
+      if (N > 2) {
+        Indent += std::string(IndentSize, ' ');
+        Out << Indent;
+      } else {
+        Out << ' ';
+      }
       printTypeInt(Out, CS->getOperand(0)->getType(), TypeTable);
 
       WriteAsOperandInternal(Out, CS->getOperand(0),
@@ -492,11 +499,13 @@
 
       for (unsigned i = 1; i < N; i++) {
         Out << ", ";
+        if (N > 2) Out << Indent;
         printTypeInt(Out, CS->getOperand(i)->getType(), TypeTable);
 
         WriteAsOperandInternal(Out, CS->getOperand(i),
                                PrintName, TypeTable, Machine);
       }
+      if (N > 2) Indent.resize(Indent.size() - IndentSize);
     }
  
     Out << " }";






More information about the llvm-commits mailing list