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

Chris Lattner lattner at cs.uiuc.edu
Fri Sep 1 22:33:07 PDT 2006



Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.58 -> 1.59
---
Log message:

Iteration is required for some cases, even if they don't occur in crafty.
Restore it, which re-fixes X86/2006-08-21-ExtraMovInst.ll


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

 LiveIntervalAnalysis.h |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.58 llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.59
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.58	Sat Sep  2 00:26:01 2006
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h	Sat Sep  2 00:32:53 2006
@@ -53,6 +53,17 @@
     std::vector<bool> allocatableRegs_;
 
   public:
+    struct CopyRec {
+      MachineInstr *MI;
+      unsigned SrcReg, DstReg;
+    };
+    CopyRec getCopyRec(MachineInstr *MI, unsigned SrcReg, unsigned DstReg) {
+      CopyRec R;
+      R.MI = MI;
+      R.SrcReg = SrcReg;
+      R.DstReg = DstReg;
+      return R;
+    }
     struct InstrSlots {
       enum {
         LOAD  = 0,
@@ -150,9 +161,10 @@
     /// joinIntervals - join compatible live intervals
     void joinIntervals();
 
-    /// CopyCoallesceInMBB - Coallsece copies in the specified MBB.
-    void CopyCoallesceInMBB(MachineBasicBlock *MBB);
-
+    /// CopyCoallesceInMBB - Coallsece copies in the specified MBB, putting
+    /// copies that cannot yet be coallesced into the "TryAgain" list.
+    void CopyCoallesceInMBB(MachineBasicBlock *MBB,
+                            std::vector<CopyRec> &TryAgain);
     /// JoinCopy - Attempt to join intervals corresponding to SrcReg/DstReg,
     /// which are the src/dst of the copy instruction CopyMI.  This returns true
     /// if the copy was successfully coallesced away, or if it is never possible






More information about the llvm-commits mailing list