[llvm-commits] [llvm] r155795 - in /llvm/trunk/lib/CodeGen: RegisterPressure.cpp RegisterPressure.h

Benjamin Kramer benny.kra at googlemail.com
Sun Apr 29 11:52:57 PDT 2012


Author: d0k
Date: Sun Apr 29 13:52:56 2012
New Revision: 155795

URL: http://llvm.org/viewvc/llvm-project?rev=155795&view=rev
Log:
RegisterPressure: ArrayRefize some functions for better readability. No functionality change.

Modified:
    llvm/trunk/lib/CodeGen/RegisterPressure.cpp
    llvm/trunk/lib/CodeGen/RegisterPressure.h

Modified: llvm/trunk/lib/CodeGen/RegisterPressure.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegisterPressure.cpp?rev=155795&r1=155794&r2=155795&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/RegisterPressure.cpp (original)
+++ llvm/trunk/lib/CodeGen/RegisterPressure.cpp Sun Apr 29 13:52:56 2012
@@ -59,28 +59,34 @@
   decreaseSetPressure(MaxSetPressure, RC, TRI);
 }
 
-/// Increase the current pressure as impacted by this physical register and bump
-/// the high water mark if needed.
-void RegPressureTracker::increasePhysRegPressure(unsigned Reg) {
-  increaseSetPressure(CurrSetPressure, P.MaxSetPressure,
-                      TRI->getMinimalPhysRegClass(Reg), TRI);
-}
-
-/// Simply decrease the current pressure as impacted by this physcial register.
-void RegPressureTracker::decreasePhysRegPressure(unsigned Reg) {
-  decreaseSetPressure(CurrSetPressure, TRI->getMinimalPhysRegClass(Reg), TRI);
-}
-
-/// Increase the current pressure as impacted by this virtual register and bump
-/// the high water mark if needed.
-void RegPressureTracker::increaseVirtRegPressure(unsigned Reg) {
-  increaseSetPressure(CurrSetPressure, P.MaxSetPressure,
-                      MRI->getRegClass(Reg), TRI);
-}
-
-/// Simply decrease the current pressure as impacted by this virtual register.
-void RegPressureTracker::decreaseVirtRegPressure(unsigned Reg) {
-  decreaseSetPressure(CurrSetPressure, MRI->getRegClass(Reg), TRI);
+/// Increase the current pressure as impacted by these physical registers and
+/// bump the high water mark if needed.
+void RegPressureTracker::increasePhysRegPressure(ArrayRef<unsigned> Regs) {
+  for (unsigned I = 0, E = Regs.size(); I != E; ++I)
+    increaseSetPressure(CurrSetPressure, P.MaxSetPressure,
+                        TRI->getMinimalPhysRegClass(Regs[I]), TRI);
+}
+
+/// Simply decrease the current pressure as impacted by these physcial
+/// registers.
+void RegPressureTracker::decreasePhysRegPressure(ArrayRef<unsigned> Regs) {
+  for (unsigned I = 0, E = Regs.size(); I != E; ++I)
+    decreaseSetPressure(CurrSetPressure, TRI->getMinimalPhysRegClass(Regs[I]),
+                        TRI);
+}
+
+/// Increase the current pressure as impacted by these virtual registers and
+/// bump the high water mark if needed.
+void RegPressureTracker::increaseVirtRegPressure(ArrayRef<unsigned> Regs) {
+  for (unsigned I = 0, E = Regs.size(); I != E; ++I)
+    increaseSetPressure(CurrSetPressure, P.MaxSetPressure,
+                        MRI->getRegClass(Regs[I]), TRI);
+}
+
+/// Simply decrease the current pressure as impacted by these virtual registers.
+void RegPressureTracker::decreaseVirtRegPressure(ArrayRef<unsigned> Regs) {
+  for (unsigned I = 0, E = Regs.size(); I != E; ++I)
+    decreaseSetPressure(CurrSetPressure, MRI->getRegClass(Regs[I]), TRI);
 }
 
 /// Clear the result so it can be used for another round of pressure tracking.
@@ -390,7 +396,9 @@
     static_cast<RegionPressure&>(P).openTop(CurrPos);
 
   // Find the previous instruction.
-  while (--CurrPos != MBB->begin() && CurrPos->isDebugValue());
+  do
+    --CurrPos;
+  while (CurrPos != MBB->begin() && CurrPos->isDebugValue());
 
   if (CurrPos->isDebugValue()) {
     closeRegion();
@@ -409,14 +417,10 @@
   collectOperands(CurrPos, PhysRegOpers, VirtRegOpers, TRI, RCI);
 
   // Boost pressure for all dead defs together.
-  for (unsigned i = 0; i < PhysRegOpers.DeadDefs.size(); ++i)
-      increasePhysRegPressure(PhysRegOpers.DeadDefs[i]);
-  for (unsigned i = 0; i < VirtRegOpers.DeadDefs.size(); ++i)
-      increaseVirtRegPressure(VirtRegOpers.DeadDefs[i]);
-  for (unsigned i = 0; i < PhysRegOpers.DeadDefs.size(); ++i)
-      decreasePhysRegPressure(PhysRegOpers.DeadDefs[i]);
-  for (unsigned i = 0; i < VirtRegOpers.DeadDefs.size(); ++i)
-      decreaseVirtRegPressure(VirtRegOpers.DeadDefs[i]);
+  increasePhysRegPressure(PhysRegOpers.DeadDefs);
+  increaseVirtRegPressure(VirtRegOpers.DeadDefs);
+  decreasePhysRegPressure(PhysRegOpers.DeadDefs);
+  decreaseVirtRegPressure(VirtRegOpers.DeadDefs);
 
   // Kill liveness at live defs.
   // TODO: consider earlyclobbers?
@@ -528,16 +532,14 @@
   }
 
   // Boost pressure for all dead defs together.
-  for (unsigned i = 0; i < PhysRegOpers.DeadDefs.size(); ++i)
-      increasePhysRegPressure(PhysRegOpers.DeadDefs[i]);
-  for (unsigned i = 0; i < VirtRegOpers.DeadDefs.size(); ++i)
-      increaseVirtRegPressure(VirtRegOpers.DeadDefs[i]);
-  for (unsigned i = 0; i < PhysRegOpers.DeadDefs.size(); ++i)
-      decreasePhysRegPressure(PhysRegOpers.DeadDefs[i]);
-  for (unsigned i = 0; i < VirtRegOpers.DeadDefs.size(); ++i)
-      decreaseVirtRegPressure(VirtRegOpers.DeadDefs[i]);
+  increasePhysRegPressure(PhysRegOpers.DeadDefs);
+  increaseVirtRegPressure(VirtRegOpers.DeadDefs);
+  decreasePhysRegPressure(PhysRegOpers.DeadDefs);
+  decreaseVirtRegPressure(VirtRegOpers.DeadDefs);
 
   // Find the next instruction.
-  while (++CurrPos != MBB->end() && CurrPos->isDebugValue());
+  do
+    ++CurrPos;
+  while (CurrPos != MBB->end() && CurrPos->isDebugValue());
   return true;
 }

Modified: llvm/trunk/lib/CodeGen/RegisterPressure.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegisterPressure.h?rev=155795&r1=155794&r2=155795&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/RegisterPressure.h (original)
+++ llvm/trunk/lib/CodeGen/RegisterPressure.h Sun Apr 29 13:52:56 2012
@@ -158,11 +158,11 @@
   void closeTop();
   void closeBottom();
 
-  void increasePhysRegPressure(unsigned Reg);
-  void decreasePhysRegPressure(unsigned Reg);
+  void increasePhysRegPressure(ArrayRef<unsigned> Regs);
+  void decreasePhysRegPressure(ArrayRef<unsigned> Regs);
 
-  void increaseVirtRegPressure(unsigned Reg);
-  void decreaseVirtRegPressure(unsigned Reg);
+  void increaseVirtRegPressure(ArrayRef<unsigned> Regs);
+  void decreaseVirtRegPressure(ArrayRef<unsigned> Regs);
 
   void discoverPhysLiveIn(unsigned Reg);
   void discoverPhysLiveOut(unsigned Reg);





More information about the llvm-commits mailing list