Lines Matching refs:LiveInterval
150 using SmallLISet = SmallPtrSet<LiveInterval *, 4>;
251 LiveRangeStage getStage(const LiveInterval &VirtReg) const { in getStage()
255 void setStage(const LiveInterval &VirtReg, LiveRangeStage Stage) { in setStage()
408 SmallSetVector<LiveInterval *, 8> SetOfBrokenHints;
424 void enqueueImpl(LiveInterval *LI) override;
425 LiveInterval *dequeue() override;
426 MCRegister selectOrSplit(LiveInterval &,
428 void aboutToRemoveInterval(LiveInterval &) override;
446 MCRegister selectOrSplitImpl(LiveInterval &, SmallVectorImpl<Register> &,
452 void enqueue(PQueue &CurQueue, LiveInterval *LI);
453 LiveInterval *dequeue(PQueue &CurQueue);
471 Register canReassign(LiveInterval &VirtReg, Register PrevReg) const;
472 bool shouldEvict(LiveInterval &A, bool, LiveInterval &B, bool) const;
473 bool canEvictInterference(LiveInterval &, MCRegister, bool, EvictionCost &,
475 bool canEvictInterferenceInRange(const LiveInterval &VirtReg,
479 const LiveInterval &VirtReg,
482 void evictInterference(LiveInterval &, MCRegister,
484 bool mayRecolorAllInterferences(MCRegister PhysReg, LiveInterval &VirtReg,
488 MCRegister tryAssign(LiveInterval&, AllocationOrder&,
491 MCRegister tryEvict(LiveInterval &, AllocationOrder &,
494 MCRegister tryRegionSplit(LiveInterval &, AllocationOrder &,
497 unsigned calculateRegionSplitCost(LiveInterval &VirtReg,
503 unsigned doRegionSplit(LiveInterval &VirtReg, unsigned BestCand,
508 MCRegister tryAssignCSRFirstTime(LiveInterval &VirtReg,
513 unsigned tryBlockSplit(LiveInterval&, AllocationOrder&,
515 unsigned tryInstructionSplit(LiveInterval&, AllocationOrder&,
517 unsigned tryLocalSplit(LiveInterval&, AllocationOrder&,
519 unsigned trySplit(LiveInterval&, AllocationOrder&,
522 unsigned tryLastChanceRecoloring(LiveInterval &, AllocationOrder &,
527 void tryHintRecoloring(LiveInterval &);
690 LiveInterval &LI = LIS->getInterval(VirtReg); in LRE_CanEraseVirtReg()
709 LiveInterval &LI = LIS->getInterval(VirtReg); in LRE_WillShrinkVirtReg()
734 void RAGreedy::enqueueImpl(LiveInterval *LI) { enqueue(Queue, LI); } in enqueueImpl()
736 void RAGreedy::enqueue(PQueue &CurQueue, LiveInterval *LI) { in enqueue()
803 LiveInterval *RAGreedy::dequeue() { return dequeue(Queue); } in dequeue()
805 LiveInterval *RAGreedy::dequeue(PQueue &CurQueue) { in dequeue()
808 LiveInterval *LI = &LIS->getInterval(~CurQueue.top().second); in dequeue()
818 MCRegister RAGreedy::tryAssign(LiveInterval &VirtReg, in tryAssign()
872 Register RAGreedy::canReassign(LiveInterval &VirtReg, Register PrevReg) const { in canReassign()
911 bool RAGreedy::shouldEvict(LiveInterval &A, bool IsHint, in shouldEvict()
912 LiveInterval &B, bool BreaksHint) const { in shouldEvict()
937 LiveInterval &VirtReg, MCRegister PhysReg, bool IsHint, in canEvictInterference()
964 for (LiveInterval *Intf : reverse(Q.interferingVRegs())) { in canEvictInterference()
1034 bool RAGreedy::canEvictInterferenceInRange(const LiveInterval &VirtReg, in canEvictInterferenceInRange()
1045 for (const LiveInterval *Intf : reverse(Q.interferingVRegs())) { in canEvictInterferenceInRange()
1087 const LiveInterval &VirtReg, in getCheapestEvicteeWeight()
1112 void RAGreedy::evictInterference(LiveInterval &VirtReg, MCRegister PhysReg, in evictInterference()
1125 SmallVector<LiveInterval*, 8> Intfs; in evictInterference()
1133 ArrayRef<LiveInterval*> IVR = Q.interferingVRegs(); in evictInterference()
1138 for (LiveInterval *Intf : Intfs) { in evictInterference()
1169 MCRegister RAGreedy::tryEvict(LiveInterval &VirtReg, AllocationOrder &Order, in tryEvict()
1572 LiveInterval &EvictorLI = LIS->getInterval(Evictor); in splitCanCauseEvictionChain()
1822 LiveInterval &Reg = LIS->getInterval(LREdit.get(I)); in splitAroundRegion()
1855 MCRegister RAGreedy::tryRegionSplit(LiveInterval &VirtReg, in tryRegionSplit()
1899 unsigned RAGreedy::calculateRegionSplitCost(LiveInterval &VirtReg, in calculateRegionSplitCost()
1999 unsigned RAGreedy::doRegionSplit(LiveInterval &VirtReg, unsigned BestCand, in doRegionSplit()
2046 unsigned RAGreedy::tryBlockSplit(LiveInterval &VirtReg, AllocationOrder &Order, in tryBlockSplit()
2074 LiveInterval &LI = LIS->getInterval(LREdit.get(I)); in tryBlockSplit()
2112 RAGreedy::tryInstructionSplit(LiveInterval &VirtReg, AllocationOrder &Order, in tryInstructionSplit()
2194 if (!Matrix->query(const_cast<LiveInterval&>(SA->getParent()), *Units) in calcGapWeights()
2255 unsigned RAGreedy::tryLocalSplit(LiveInterval &VirtReg, AllocationOrder &Order, in tryLocalSplit()
2486 unsigned RAGreedy::trySplit(LiveInterval &VirtReg, AllocationOrder &Order, in trySplit()
2555 MCRegister PhysReg, LiveInterval &VirtReg, SmallLISet &RecoloringCandidates, in mayRecolorAllInterferences()
2569 for (LiveInterval *Intf : reverse(Q.interferingVRegs())) { in mayRecolorAllInterferences()
2628 unsigned RAGreedy::tryLastChanceRecoloring(LiveInterval &VirtReg, in tryLastChanceRecoloring()
2690 for (LiveInterval *RC : RecoloringCandidates) { in tryLastChanceRecoloring()
2739 for (LiveInterval *RC : RecoloringCandidates) { in tryLastChanceRecoloring()
2765 LiveInterval *LI = dequeue(RecoloringQueue); in tryRecoloringCandidates()
2795 MCRegister RAGreedy::selectOrSplit(LiveInterval &VirtReg, in selectOrSplit()
2826 RAGreedy::tryAssignCSRFirstTime(LiveInterval &VirtReg, AllocationOrder &Order, in tryAssignCSRFirstTime()
2860 void RAGreedy::aboutToRemoveInterval(LiveInterval &LI) { in aboutToRemoveInterval()
2934 void RAGreedy::tryHintRecoloring(LiveInterval &VirtReg) { in tryHintRecoloring()
2967 LiveInterval &LI = LIS->getInterval(Reg); in tryHintRecoloring()
3048 for (LiveInterval *LI : SetOfBrokenHints) { in tryHintsRecoloring()
3059 MCRegister RAGreedy::selectOrSplitImpl(LiveInterval &VirtReg, in selectOrSplitImpl()