Lines Matching refs:LiveInterval
104 typedef SmallPtrSet<LiveInterval *, 4> SmallLISet;
197 LiveRangeStage getStage(const LiveInterval &VirtReg) const {
201 void setStage(const LiveInterval &VirtReg, LiveRangeStage Stage) {
311 void enqueue(LiveInterval *LI) override;
312 LiveInterval *dequeue() override;
313 unsigned selectOrSplit(LiveInterval&, SmallVectorImpl<unsigned>&) override;
321 unsigned selectOrSplitImpl(LiveInterval &, SmallVectorImpl<unsigned> &,
327 void enqueue(PQueue &CurQueue, LiveInterval *LI);
328 LiveInterval *dequeue(PQueue &CurQueue);
338 unsigned canReassign(LiveInterval &VirtReg, unsigned PhysReg);
339 bool shouldEvict(LiveInterval &A, bool, LiveInterval &B, bool);
340 bool canEvictInterference(LiveInterval&, unsigned, bool, EvictionCost&);
341 void evictInterference(LiveInterval&, unsigned,
343 bool mayRecolorAllInterferences(unsigned PhysReg, LiveInterval &VirtReg,
347 unsigned tryAssign(LiveInterval&, AllocationOrder&,
349 unsigned tryEvict(LiveInterval&, AllocationOrder&,
351 unsigned tryRegionSplit(LiveInterval&, AllocationOrder&,
354 unsigned calculateRegionSplitCost(LiveInterval &VirtReg,
359 unsigned doRegionSplit(LiveInterval &VirtReg, unsigned BestCand,
364 unsigned tryAssignCSRFirstTime(LiveInterval &VirtReg, AllocationOrder &Order,
368 unsigned tryBlockSplit(LiveInterval&, AllocationOrder&,
370 unsigned tryInstructionSplit(LiveInterval&, AllocationOrder&,
372 unsigned tryLocalSplit(LiveInterval&, AllocationOrder&,
374 unsigned trySplit(LiveInterval&, AllocationOrder&,
376 unsigned tryLastChanceRecoloring(LiveInterval &, AllocationOrder &,
469 LiveInterval &LI = LIS->getInterval(VirtReg);
494 void RAGreedy::enqueue(LiveInterval *LI) { enqueue(Queue, LI); }
496 void RAGreedy::enqueue(PQueue &CurQueue, LiveInterval *LI) {
552 LiveInterval *RAGreedy::dequeue() { return dequeue(Queue); }
554 LiveInterval *RAGreedy::dequeue(PQueue &CurQueue) {
557 LiveInterval *LI = &LIS->getInterval(~CurQueue.top().second);
568 unsigned RAGreedy::tryAssign(LiveInterval &VirtReg,
612 unsigned RAGreedy::canReassign(LiveInterval &VirtReg, unsigned PrevReg) {
650 bool RAGreedy::shouldEvict(LiveInterval &A, bool IsHint,
651 LiveInterval &B, bool BreaksHint) {
675 bool RAGreedy::canEvictInterference(LiveInterval &VirtReg, unsigned PhysReg,
703 LiveInterval *Intf = Q.interferingVRegs()[i - 1];
757 void RAGreedy::evictInterference(LiveInterval &VirtReg, unsigned PhysReg,
770 SmallVector<LiveInterval*, 8> Intfs;
774 ArrayRef<LiveInterval*> IVR = Q.interferingVRegs();
780 LiveInterval *Intf = Intfs[i];
798 unsigned RAGreedy::tryEvict(LiveInterval &VirtReg,
1257 LiveInterval &Reg = LIS->getInterval(LREdit.get(i));
1290 unsigned RAGreedy::tryRegionSplit(LiveInterval &VirtReg, AllocationOrder &Order,
1320 unsigned RAGreedy::calculateRegionSplitCost(LiveInterval &VirtReg,
1401 unsigned RAGreedy::doRegionSplit(LiveInterval &VirtReg, unsigned BestCand,
1449 unsigned RAGreedy::tryBlockSplit(LiveInterval &VirtReg, AllocationOrder &Order,
1478 LiveInterval &LI = LIS->getInterval(LREdit.get(i));
1517 RAGreedy::tryInstructionSplit(LiveInterval &VirtReg, AllocationOrder &Order,
1599 if (!Matrix->query(const_cast<LiveInterval&>(SA->getParent()), *Units)
1660 unsigned RAGreedy::tryLocalSplit(LiveInterval &VirtReg, AllocationOrder &Order,
1885 unsigned RAGreedy::trySplit(LiveInterval &VirtReg, AllocationOrder &Order,
1942 RAGreedy::mayRecolorAllInterferences(unsigned PhysReg, LiveInterval &VirtReg,
1958 LiveInterval *Intf = Q.interferingVRegs()[i - 1];
2012 unsigned RAGreedy::tryLastChanceRecoloring(LiveInterval &VirtReg,
2132 LiveInterval *LI = dequeue(RecoloringQueue);
2150 unsigned RAGreedy::selectOrSplit(LiveInterval &VirtReg,
2180 unsigned RAGreedy::tryAssignCSRFirstTime(LiveInterval &VirtReg,
2241 unsigned RAGreedy::selectOrSplitImpl(LiveInterval &VirtReg,