summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/Spiller.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2010-06-24 20:54:29 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2010-06-24 20:54:29 +0000
commit2b87d44c5de111da0389f832e7311101f61e6a55 (patch)
tree991b7477e3476d394ff490a3aa0f1f0dd69f563e /llvm/lib/CodeGen/Spiller.h
parent4398fd7b836561635662f23ed77ed5786aafc8f2 (diff)
downloadbcm5719-llvm-2b87d44c5de111da0389f832e7311101f61e6a55.tar.gz
bcm5719-llvm-2b87d44c5de111da0389f832e7311101f61e6a55.zip
Don't return a std::vector in the Spiller interface, but take a reference to a
vector instead. This avoids needless copying and allocation. Add documentation. llvm-svn: 106788
Diffstat (limited to 'llvm/lib/CodeGen/Spiller.h')
-rw-r--r--llvm/lib/CodeGen/Spiller.h18
1 files changed, 13 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/Spiller.h b/llvm/lib/CodeGen/Spiller.h
index dda52e871fe..02decad41ab 100644
--- a/llvm/lib/CodeGen/Spiller.h
+++ b/llvm/lib/CodeGen/Spiller.h
@@ -33,11 +33,19 @@ namespace llvm {
public:
virtual ~Spiller() = 0;
- /// Spill the given live range. The method used will depend on the Spiller
- /// implementation selected.
- virtual std::vector<LiveInterval*> spill(LiveInterval *li,
- SmallVectorImpl<LiveInterval*> &spillIs,
- SlotIndex *earliestIndex = 0) = 0;
+ /// spill - Spill the given live interval. The method used will depend on
+ /// the Spiller implementation selected.
+ ///
+ /// @param li The live interval to be spilled.
+ /// @param spillIs An essential hook into the register allocator guts
+ /// that perhaps serves a purpose(?!)
+ /// @param newIntervals The newly created intervals will be appended here.
+ /// @param earliestIndex The earliest point for splitting. (OK, it's another
+ /// pointer to the allocator guts).
+ virtual void spill(LiveInterval *li,
+ std::vector<LiveInterval*> &newIntervals,
+ SmallVectorImpl<LiveInterval*> &spillIs,
+ SlotIndex *earliestIndex = 0) = 0;
};
OpenPOWER on IntegriCloud