diff options
| author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-03-10 01:51:42 +0000 | 
|---|---|---|
| committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-03-10 01:51:42 +0000 | 
| commit | 4d6eafa138730e6fde5b6cccb3e37f89e5913a5c (patch) | |
| tree | d84e5014b07728054d71016f43ea14d1eb6e7074 /llvm/lib/CodeGen/RegAllocLinearScan.cpp | |
| parent | c6cc4850515bb3b430838a1a238827eea827a1bb (diff) | |
| download | llvm-4d6eafa138730e6fde5b6cccb3e37f89e5913a5c.zip llvm-4d6eafa138730e6fde5b6cccb3e37f89e5913a5c.tar.gz llvm-4d6eafa138730e6fde5b6cccb3e37f89e5913a5c.tar.bz2  | |
Change the Spiller interface to take a LiveRangeEdit reference.
This makes it possible to register delegates and get callbacks when the spiller
edits live ranges.
llvm-svn: 127389
Diffstat (limited to 'llvm/lib/CodeGen/RegAllocLinearScan.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/RegAllocLinearScan.cpp | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/RegAllocLinearScan.cpp b/llvm/lib/CodeGen/RegAllocLinearScan.cpp index 4a9226c..e99d910 100644 --- a/llvm/lib/CodeGen/RegAllocLinearScan.cpp +++ b/llvm/lib/CodeGen/RegAllocLinearScan.cpp @@ -13,6 +13,7 @@  #define DEBUG_TYPE "regalloc"  #include "LiveDebugVariables.h" +#include "LiveRangeEdit.h"  #include "VirtRegMap.h"  #include "VirtRegRewriter.h"  #include "Spiller.h" @@ -1230,7 +1231,8 @@ void RALinScan::assignRegOrStackSlotAtInterval(LiveInterval* cur) {    if (cur->weight != HUGE_VALF && cur->weight <= minWeight) {      DEBUG(dbgs() << "\t\t\tspilling(c): " << *cur << '\n');      SmallVector<LiveInterval*, 8> added; -    spiller_->spill(cur, added, 0); +    LiveRangeEdit LRE(*cur, added); +    spiller_->spill(LRE);      std::sort(added.begin(), added.end(), LISorter());      if (added.empty()) @@ -1306,7 +1308,8 @@ void RALinScan::assignRegOrStackSlotAtInterval(LiveInterval* cur) {      DEBUG(dbgs() << "\t\t\tspilling(a): " << *sli << '\n');      if (sli->beginIndex() < earliestStart)        earliestStart = sli->beginIndex(); -    spiller_->spill(sli, added, &spillIs); +    LiveRangeEdit LRE(*sli, added, 0, &spillIs); +    spiller_->spill(LRE);      spilled.insert(sli->reg);    }  | 
