[llvm-commits] CVS: llvm/lib/CodeGen/LiveIntervals.cpp

Alkis Evlogimenos alkis at cs.uiuc.edu
Thu Jul 22 08:18:20 PDT 2004



Changes in directory llvm/lib/CodeGen:

LiveIntervals.cpp updated: 1.100 -> 1.101

---
Log message:

Sorting is now handled by both linearscan and iterative scan so live
intervals need not be sorted anymore. Removing this redundant step
improves LiveIntervals running time by 5% on 176.gcc.


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

Index: llvm/lib/CodeGen/LiveIntervals.cpp
diff -u llvm/lib/CodeGen/LiveIntervals.cpp:1.100 llvm/lib/CodeGen/LiveIntervals.cpp:1.101
--- llvm/lib/CodeGen/LiveIntervals.cpp:1.100	Wed Jul 21 19:04:14 2004
+++ llvm/lib/CodeGen/LiveIntervals.cpp	Thu Jul 22 10:18:10 2004
@@ -159,7 +159,6 @@
         }
     }
 
-    intervals_.sort();
     DEBUG(std::cerr << "********** INTERVALS **********\n");
     DEBUG(std::copy(intervals_.begin(), intervals_.end(),
                     std::ostream_iterator<LiveInterval>(std::cerr, "\n")));
@@ -263,15 +262,6 @@
         }
     }
 
-    // FIXME: This method MUST return intervals in sorted order.  If a 
-    // particular machine instruction both uses and defines the vreg being
-    // spilled (e.g.,  vr = vr + 1) and if the def is processed before the
-    // use, the list ends up not sorted.
-    //
-    // The proper way to fix this is to process all uses of the vreg before we 
-    // process any defs.  However, this would require refactoring the above 
-    // blob of code, which I'm not feeling up to right now.
-    std::sort(added.begin(), added.end(), less_ptr<LiveInterval>());
     return added;
 }
 





More information about the llvm-commits mailing list