[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

Evan Cheng evan.cheng at apple.com
Wed Feb 28 18:03:22 PST 2007



Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.75 -> 1.76
---
Log message:

Track all joined registers and eliminate unneeded kills after all joining are done.

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

 LiveIntervalAnalysis.h |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.75 llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.76
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.75	Mon Feb 26 15:37:37 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h	Wed Feb 28 20:03:03 2007
@@ -57,6 +57,10 @@
 
     BitVector allocatableRegs_;
 
+    /// JoinedLIs - Keep track which register intervals have been coalesced
+    /// with other intervals.
+    BitVector JoinedLIs;
+
   public:
     struct CopyRec {
       MachineInstr *MI;
@@ -119,8 +123,7 @@
     }
 
     bool hasInterval(unsigned reg) const {
-      Reg2IntervalMap::const_iterator I = r2iMap_.find(reg);
-      return I != r2iMap_.end();
+      return r2iMap_.count(reg);
     }
 
     /// getMBBStartIdx - Return the base index of the first instruction in the
@@ -264,10 +267,14 @@
     MachineInstr *lastRegisterUse(unsigned Reg, unsigned Start, unsigned End,
                                   MachineOperand *&MOU);
 
-    /// unsetRegisterKill - Unset IsKill property of all uses of specific
+    /// unsetRegisterKill - Unset IsKill property of all uses of the specific
     /// register of the specific instruction.
     void unsetRegisterKill(MachineInstr *MI, unsigned Reg);
 
+    /// hasRegisterDef - True if the instruction defines the specific register.
+    ///
+    bool hasRegisterDef(MachineInstr *MI, unsigned Reg);
+
     static LiveInterval createInterval(unsigned Reg);
 
     void removeInterval(unsigned Reg) {






More information about the llvm-commits mailing list