[llvm-commits] [llvm] r79358 - in /llvm/trunk: include/llvm/CodeGen/AsmPrinter.h include/llvm/Support/IOManip.h lib/CodeGen/AsmPrinter/AsmPrinter.cpp

David Greene greened at obbligato.org
Tue Aug 18 12:22:55 PDT 2009


Author: greened
Date: Tue Aug 18 14:22:55 2009
New Revision: 79358

URL: http://llvm.org/viewvc/llvm-project?rev=79358&view=rev
Log:

Make various changes suggested by Chris.

Removed:
    llvm/trunk/include/llvm/Support/IOManip.h
Modified:
    llvm/trunk/include/llvm/CodeGen/AsmPrinter.h
    llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

Modified: llvm/trunk/include/llvm/CodeGen/AsmPrinter.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/AsmPrinter.h?rev=79358&r1=79357&r2=79358&view=diff

==============================================================================
--- llvm/trunk/include/llvm/CodeGen/AsmPrinter.h (original)
+++ llvm/trunk/include/llvm/CodeGen/AsmPrinter.h Tue Aug 18 14:22:55 2009
@@ -17,6 +17,7 @@
 #define LLVM_CODEGEN_ASMPRINTER_H
 
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/Support/DebugLoc.h"
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/ADT/DenseMap.h"
 
@@ -24,15 +25,22 @@
   class GCStrategy;
   class Constant;
   class ConstantArray;
+  class ConstantFP;
   class ConstantInt;
   class ConstantStruct;
   class ConstantVector;
   class GCMetadataPrinter;
+  class GlobalValue;
   class GlobalVariable;
+  class MachineBasicBlock;
+  class MachineFunction;
+  class MachineInstr;
   class MachineLoopInfo;
   class MachineLoop;
+  class MachineConstantPool;
   class MachineConstantPoolEntry;
   class MachineConstantPoolValue;
+  class MachineJumpTableInfo;
   class MachineModuleInfo;
   class MCInst;
   class MCContext;
@@ -67,11 +75,6 @@
     ///
     MachineLoopInfo *LI;
 
-    /// PrintChildLoopComment - Print comments about child loops
-    /// within the loop for this basic block, with nesting.
-    ///
-    void PrintChildLoopComment(const MachineLoop *loop) const;
-
   protected:
     /// MMI - If available, this is a pointer to the current MachineModuleInfo.
     MachineModuleInfo *MMI;

Removed: llvm/trunk/include/llvm/Support/IOManip.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/IOManip.h?rev=79357&view=auto

==============================================================================
--- llvm/trunk/include/llvm/Support/IOManip.h (original)
+++ llvm/trunk/include/llvm/Support/IOManip.h (removed)
@@ -1,43 +0,0 @@
-//===----------------- IOManip.h - iostream manipulators ---------*- C++ -*===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Manipulators to do special-purpose formatting.
-//
-//===----------------------------------------------------------------------===//
-
-namespace llvm {
-  /// Indent - Insert spaces into the character output stream.  The
-  /// "level" is multiplied by the "scale" to calculate the number of
-  /// spaces to insert.  "level" can represent something like loop
-  /// nesting level, for example.
-  ///
-  class Indent {
-  public:
-    explicit Indent(int lvl, int amt = 2)
-        : level(lvl), scale(amt) {}
-
-    template<typename OStream>
-    OStream &operator()(OStream &out) const {
-      for(int i = 0; i < level*scale; ++i) {
-        out << " ";
-      }
-      return out;
-    }
-
-  private:
-    int level;
-    int scale;
-  };
-
-  template<typename OStream>
-  OStream &operator<<(OStream &out, const Indent &indent)
-  {
-    return(indent(out));
-  }
-}

Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=79358&r1=79357&r2=79358&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Tue Aug 18 14:22:55 2009
@@ -18,6 +18,7 @@
 #include "llvm/Module.h"
 #include "llvm/CodeGen/GCMetadataPrinter.h"
 #include "llvm/CodeGen/MachineConstantPool.h"
+#include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/CodeGen/MachineJumpTableInfo.h"
 #include "llvm/CodeGen/MachineLoopInfo.h"
 #include "llvm/CodeGen/MachineModuleInfo.h"
@@ -30,7 +31,6 @@
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/IOManip.h"
 #include "llvm/Support/Mangler.h"
 #include "llvm/Target/TargetAsmInfo.h"
 #include "llvm/Target/TargetData.h"
@@ -48,10 +48,6 @@
 AsmVerbose("asm-verbose", cl::desc("Add comments to directives."),
            cl::init(cl::BOU_UNSET));
 
-static cl::opt<cl::boolOrDefault>
-AsmExuberant("asm-exuberant", cl::desc("Add many comments."),
-           cl::init(cl::BOU_FALSE));
-
 char AsmPrinter::ID = 0;
 AsmPrinter::AsmPrinter(formatted_raw_ostream &o, TargetMachine &tm,
                        const TargetAsmInfo *T, bool VDef)
@@ -69,11 +65,6 @@
   case cl::BOU_TRUE:  VerboseAsm = true;  break;
   case cl::BOU_FALSE: VerboseAsm = false; break;
   }
-  switch (AsmExuberant) {
-  case cl::BOU_UNSET: ExuberantAsm = false;  break;
-  case cl::BOU_TRUE:  ExuberantAsm = true;  break;
-  case cl::BOU_FALSE: ExuberantAsm = false; break;
-  }
 }
 
 AsmPrinter::~AsmPrinter() {
@@ -106,7 +97,7 @@
   AU.setPreservesAll();
   MachineFunctionPass::getAnalysisUsage(AU);
   AU.addRequired<GCModuleInfo>();
-  if (ExuberantAsm)
+  if (VerboseAsm)
     AU.addRequired<MachineLoopInfo>();
 }
 
@@ -238,7 +229,7 @@
   CurrentFnName = Mang->getMangledName(MF.getFunction());
   IncrementFunctionNumber();
 
-  if (ExuberantAsm) {
+  if (VerboseAsm) {
     LI = &getAnalysis<MachineLoopInfo>();
   }
 }
@@ -1802,10 +1793,50 @@
   }
 }
 
+/// Indent - Insert spaces into the character output stream.  The
+/// "level" is multiplied by the "scale" to calculate the number of
+/// spaces to insert.  "level" can represent something like loop
+/// nesting level, for example.
+///
+static formatted_raw_ostream &
+Indent(formatted_raw_ostream &out, int level, int scale = 2) {
+  for(int i = 0; i < level*scale; ++i) {
+    out << " ";
+  }
+  return out;
+}
+
+/// PrintChildLoopComment - Print comments about child loops within
+/// the loop for this basic block, with nesting.
+///
+static void PrintChildLoopComment(formatted_raw_ostream &O,
+                                  const MachineLoop *loop,
+                                  const TargetAsmInfo *TAI,
+                                  int FunctionNumber) {
+  // Add child loop information
+  for(MachineLoop::iterator cl = loop->begin(),
+        clend = loop->end();
+      cl != clend;
+      ++cl) {
+    MachineBasicBlock *Header = (*cl)->getHeader();
+    assert(Header && "No header for loop");
+
+    O << '\n';
+    O.PadToColumn(TAI->getCommentColumn());
+
+    O << TAI->getCommentString();
+    Indent(O, (*cl)->getLoopDepth()-1)
+      << " Child Loop BB" << FunctionNumber << "_"
+      << Header->getNumber() << " Depth " << (*cl)->getLoopDepth();
+
+    PrintChildLoopComment(O, *cl, TAI, FunctionNumber);
+  }
+}
+
 /// EmitComments - Pretty-print comments for basic blocks
 void AsmPrinter::EmitComments(const MachineBasicBlock &MBB) const
 {
-  if (ExuberantAsm) {
+  if (VerboseAsm) {
     // Add loop depth information
     const MachineLoop *loop = LI->getLoopFor(&MBB);
 
@@ -1823,7 +1854,7 @@
       
       if (Header == &MBB) {
         O << TAI->getCommentString() << " Loop Header";
-        PrintChildLoopComment(loop);
+        PrintChildLoopComment(O, loop, TAI, getFunctionNumber());
       }
       else {
         O << TAI->getCommentString() << " Loop Header is BB"
@@ -1845,30 +1876,11 @@
 
         O << '\n';
         O.PadToColumn(TAI->getCommentColumn());
-        O << TAI->getCommentString() << Indent(CurLoop->getLoopDepth()-1)
-          << " Inside Loop BB" << getFunctionNumber() << "_" 
+        O << TAI->getCommentString();
+        Indent(O, CurLoop->getLoopDepth()-1)
+          << " Inside Loop BB" << getFunctionNumber() << "_"
           << Header->getNumber() << " Depth " << CurLoop->getLoopDepth();
       }
     }
   }
 }
-
-void AsmPrinter::PrintChildLoopComment(const MachineLoop *loop) const {
-  // Add child loop information
-  for(MachineLoop::iterator cl = loop->begin(),
-        clend = loop->end();
-      cl != clend;
-      ++cl) {
-    MachineBasicBlock *Header = (*cl)->getHeader();
-    assert(Header && "No header for loop");
-
-    O << '\n';
-    O.PadToColumn(TAI->getCommentColumn());
-
-    O << TAI->getCommentString() << Indent((*cl)->getLoopDepth()-1)
-      << " Child Loop BB" << getFunctionNumber() << "_"
-      << Header->getNumber() << " Depth " << (*cl)->getLoopDepth();
-
-    PrintChildLoopComment(*cl);
-  }
-}





More information about the llvm-commits mailing list