regpressure: Added RegisterPressure::dump
authorAndrew Trick <atrick@apple.com>
Thu, 24 May 2012 22:10:59 +0000 (22:10 +0000)
committerAndrew Trick <atrick@apple.com>
Thu, 24 May 2012 22:10:59 +0000 (22:10 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157423 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegisterPressure.cpp
lib/CodeGen/RegisterPressure.h

index 0bdb19a776911ba0d8dfcbb69c6a6785229b605e..b1c1c513daa688b3784a1e026b7d66137e181938 100644 (file)
@@ -18,6 +18,8 @@
 #include "llvm/CodeGen/LiveIntervalAnalysis.h"
 #include "llvm/CodeGen/MachineRegisterInfo.h"
 #include "llvm/Target/TargetMachine.h"
+#include "llvm/Support/Debug.h"
+#include "llvm/Support/raw_ostream.h"
 
 using namespace llvm;
 
@@ -61,6 +63,22 @@ void RegisterPressure::decrease(const TargetRegisterClass *RC,
   decreaseSetPressure(MaxSetPressure, RC, TRI);
 }
 
+void RegisterPressure::dump(const TargetRegisterInfo *TRI) {
+  dbgs() << "Live In: ";
+  for (unsigned i = 0, e = LiveInRegs.size(); i < e; ++i)
+    dbgs() << PrintReg(LiveInRegs[i], TRI) << " ";
+  dbgs() << '\n';
+  dbgs() << "Live Out: ";
+  for (unsigned i = 0, e = LiveOutRegs.size(); i < e; ++i)
+    dbgs() << PrintReg(LiveOutRegs[i], TRI) << " ";
+  dbgs() << '\n';
+  for (unsigned i = 0, e = MaxSetPressure.size(); i < e; ++i) {
+    if (MaxSetPressure[i] != 0)
+      dbgs() << TRI->getRegPressureSetName(i) << "=" << MaxSetPressure[i]
+             << '\n';
+  }
+}
+
 /// Increase the current pressure as impacted by these physical registers and
 /// bump the high water mark if needed.
 void RegPressureTracker::increasePhysRegPressure(ArrayRef<unsigned> Regs) {
index b4244800900f828d072afecf4811ee3c8f911961..dd7ba86d1934243f305b85a1a0da743a5f87d768 100644 (file)
@@ -42,6 +42,8 @@ struct RegisterPressure {
   /// Decrease register pressure for each pressure set impacted by this register
   /// class. This is only useful to account for spilling or rematerialization.
   void decrease(const TargetRegisterClass *RC, const TargetRegisterInfo *TRI);
+
+  void dump(const TargetRegisterInfo *TRI);
 };
 
 /// RegisterPressure computed within a region of instructions delimited by