Add PrefixPrinter arguments to the dump routines for MachineFunction and
authorDavid Greene <greened@obbligato.org>
Tue, 21 Jul 2009 18:27:05 +0000 (18:27 +0000)
committerDavid Greene <greened@obbligato.org>
Tue, 21 Jul 2009 18:27:05 +0000 (18:27 +0000)
MachineBasicBlock.  We'll use these shortly.

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

include/llvm/CodeGen/MachineBasicBlock.h
include/llvm/CodeGen/MachineFunction.h
lib/CodeGen/MachineBasicBlock.cpp
lib/CodeGen/MachineFunction.cpp

index aacc31455eab793f5f2235d1ee5179fd6e8345d1..b5278b688d2f69c9ca51c8403b2e7e3be3e9fd49 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "llvm/CodeGen/MachineInstr.h"
 #include "llvm/ADT/GraphTraits.h"
+#include "llvm/Support/Dump.h"
 
 namespace llvm {
 
@@ -309,8 +310,12 @@ public:
 
   // Debugging methods.
   void dump() const;
-  void print(std::ostream &OS) const;
-  void print(std::ostream *OS) const { if (OS) print(*OS); }
+  void print(std::ostream &OS,
+             const PrefixPrinter &prefix = PrefixPrinter()) const;
+  void print(std::ostream *OS,
+             const PrefixPrinter &prefix = PrefixPrinter()) const {
+    if (OS) print(*OS, prefix); 
+  }
 
   /// getNumber - MachineBasicBlocks are uniquely numbered at the function
   /// level, unless they're not in a MachineFunction yet, in which case this
index ea6a384d2287243b3f93fda831d8ad36abd233bc..4937b23a6d966dc26ddb635b0b88a45248bdffd1 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "llvm/ADT/ilist.h"
 #include "llvm/Support/DebugLoc.h"
+#include "llvm/Support/Dump.h"
 #include "llvm/CodeGen/MachineBasicBlock.h"
 #include "llvm/Support/Annotation.h"
 #include "llvm/Support/Allocator.h"
@@ -207,8 +208,12 @@ public:
   /// print - Print out the MachineFunction in a format suitable for debugging
   /// to the specified stream.
   ///
-  void print(std::ostream &OS) const;
-  void print(std::ostream *OS) const { if (OS) print(*OS); }
+  void print(std::ostream &OS, 
+             const PrefixPrinter &prefix = PrefixPrinter()) const;
+  void print(std::ostream *OS,
+             const PrefixPrinter &prefix = PrefixPrinter()) const {
+    if (OS) print(*OS, prefix); 
+  }
 
   /// viewCFG - This function is meant for use from the debugger.  You can just
   /// say 'call F->viewCFG()' and a ghostview window should pop up from the
index 71e6b3e4d0f8694d9cd1d3e94b131cd5a712bdeb..82ff769c1d05275467b7b6c47b1fdd0c18bb54f2 100644 (file)
@@ -148,7 +148,8 @@ static inline void OutputReg(std::ostream &os, unsigned RegNo,
     os << " %reg" << RegNo;
 }
 
-void MachineBasicBlock::print(std::ostream &OS) const {
+void MachineBasicBlock::print(std::ostream &OS,
+                              const PrefixPrinter &prefix) const {
   const MachineFunction *MF = getParent();
   if(!MF) {
     OS << "Can't print out MachineBasicBlock because parent MachineFunction"
@@ -181,6 +182,7 @@ void MachineBasicBlock::print(std::ostream &OS) const {
   }
   
   for (const_iterator I = begin(); I != end(); ++I) {
+    OS << prefix(*I);
     OS << "\t";
     I->print(OS, &getParent()->getTarget());
   }
index 599efb8bd276c4c132d6f8c6e7f3bc6b06049ed3..324e3a5b9215e7baf632b47dbf164b763f27985e 100644 (file)
@@ -252,7 +252,8 @@ void MachineFunction::dump() const {
   print(*cerr.stream());
 }
 
-void MachineFunction::print(std::ostream &OS) const {
+void MachineFunction::print(std::ostream &OS,
+                            const PrefixPrinter &prefix) const {
   OS << "# Machine code for " << Fn->getName () << "():\n";
 
   // Print Frame Information
@@ -294,8 +295,10 @@ void MachineFunction::print(std::ostream &OS) const {
     OS << "\n";
   }
   
-  for (const_iterator BB = begin(); BB != end(); ++BB)
-    BB->print(OS);
+  for (const_iterator BB = begin(); BB != end(); ++BB) {
+    OS << prefix(*BB);
+    BB->print(OS, prefix);
+  }
 
   OS << "\n# End machine code for " << Fn->getName () << "().\n\n";
 }