Lines Matching refs:LiveInterval
242 void setUndefOnPrunedSubRegUses(LiveInterval &LI, Register Reg,
263 bool isHighCostLiveInterval(LiveInterval &LI);
273 void mergeSubRangeInto(LiveInterval &LI, const LiveRange &ToMerge,
290 bool hasOtherReachingDefs(LiveInterval &IntA, LiveInterval &IntB,
328 void addUndefFlag(const LiveInterval &Int, SlotIndex UseIdx,
354 void shrinkToUses(LiveInterval *LI, in shrinkToUses()
360 SmallVector<LiveInterval*, 8> SplitLIs; in shrinkToUses()
630 LiveInterval &IntA = in adjustCopiesBackFrom()
632 LiveInterval &IntB = in adjustCopiesBackFrom()
652 LiveInterval::iterator BS = IntB.FindSegmentContaining(CopyIdx); in adjustCopiesBackFrom()
663 LiveInterval::iterator AS = IntA.FindSegmentContaining(CopyUseIdx); in adjustCopiesBackFrom()
676 LiveInterval::iterator ValS = in adjustCopiesBackFrom()
704 IntB.addSegment(LiveInterval::Segment(FillerStart, FillerEnd, BValNo)); in adjustCopiesBackFrom()
711 for (LiveInterval::SubRange &S : IntB.subranges()) { in adjustCopiesBackFrom()
714 LiveInterval::iterator SS = S.FindSegmentContaining(CopyIdx); in adjustCopiesBackFrom()
726 S.addSegment(LiveInterval::Segment(FillerStart, FillerEnd, SubBValNo)); in adjustCopiesBackFrom()
747 for (LiveInterval::SubRange &S : IntA.subranges()) { in adjustCopiesBackFrom()
748 LiveInterval::iterator SS = S.FindSegmentContaining(CopyUseIdx); in adjustCopiesBackFrom()
762 bool RegisterCoalescer::hasOtherReachingDefs(LiveInterval &IntA, in hasOtherReachingDefs()
763 LiveInterval &IntB, in hasOtherReachingDefs()
773 LiveInterval::iterator BI = llvm::upper_bound(IntB, ASeg.start); in hasOtherReachingDefs()
818 LiveInterval &IntA = in removeCopyByCommutingDef()
820 LiveInterval &IntB = in removeCopyByCommutingDef()
896 LiveInterval::iterator US = IntA.FindSegmentContaining(UseIdx); in removeCopyByCommutingDef()
951 LiveInterval::iterator US = IntA.FindSegmentContaining(UseIdx); in removeCopyByCommutingDef()
978 for (LiveInterval::SubRange &S : IntB.subranges()) { in removeCopyByCommutingDef()
1005 for (LiveInterval::SubRange &SA : IntA.subranges()) { in removeCopyByCommutingDef()
1020 &ShrinkB](LiveInterval::SubRange &SR) { in removeCopyByCommutingDef()
1034 for (LiveInterval::SubRange &SB : IntB.subranges()) { in removeCopyByCommutingDef()
1117 LiveInterval &IntA = in removePartialRedundancy()
1119 LiveInterval &IntB = in removePartialRedundancy()
1208 for (LiveInterval::SubRange &SR : IntB.subranges()) in removePartialRedundancy()
1237 for (LiveInterval::SubRange &SR : IntB.subranges()) { in removePartialRedundancy()
1297 LiveInterval &SrcInt = LIS->getInterval(SrcReg); in reMaterializeTrivialDef()
1440 LiveInterval &DstInt = LIS->getInterval(DstReg); in reMaterializeTrivialDef()
1441 for (LiveInterval::SubRange &SR : DstInt.subranges()) { in reMaterializeTrivialDef()
1474 for (LiveInterval::SubRange &SR : DstInt.subranges()) { in reMaterializeTrivialDef()
1480 LiveInterval::SubRange *SR = DstInt.createSubRange(Alloc, MaxMask); in reMaterializeTrivialDef()
1501 for (LiveInterval::SubRange &SR : DstInt.subranges()) { in reMaterializeTrivialDef()
1630 const LiveInterval &SrcLI = LIS->getInterval(SrcReg); in eliminateUndefCopy()
1634 for (const LiveInterval::SubRange &SR : SrcLI.subranges()) { in eliminateUndefCopy()
1645 LiveInterval &DstLI = LIS->getInterval(DstReg); in eliminateUndefCopy()
1673 for (LiveInterval::SubRange &SR : DstLI.subranges()) { in eliminateUndefCopy()
1695 for (const LiveInterval::SubRange &SR : DstLI.subranges()) { in eliminateUndefCopy()
1724 void RegisterCoalescer::addUndefFlag(const LiveInterval &Int, SlotIndex UseIdx, in addUndefFlag()
1730 for (const LiveInterval::SubRange &S : Int.subranges()) { in addUndefFlag()
1753 LiveInterval *DstInt = DstIsPhys ? nullptr : &LIS->getInterval(DstReg); in updateRegDefsUses()
1850 LiveInterval &JoinVInt = LIS->getInterval(CP.getSrcReg()); in canJoinPhys()
1873 void RegisterCoalescer::setUndefOnPrunedSubRegUses(LiveInterval &LI, in setUndefOnPrunedSubRegUses()
1885 for (LiveInterval::SubRange &S : LI.subranges()) { in setUndefOnPrunedSubRegUses()
1953 LiveInterval &LI = LIS->getInterval(CP.getSrcReg()); in joinCopy()
1967 for (LiveInterval::SubRange &S : LI.subranges()) { in joinCopy()
2058 LiveInterval &DstLI = LIS->getInterval(DstReg); in joinCopy()
2104 LiveInterval &LI = LIS->getInterval(CP.getDstReg()); in joinCopy()
2105 for (LiveInterval::SubRange &S : LI.subranges()) { in joinCopy()
2122 LiveInterval &LI = LIS->getInterval(CP.getDstReg()); in joinCopy()
2153 LiveInterval &RHS = LIS->getInterval(SrcReg); in joinReservedPhysReg()
2535 void pruneSubRegValues(LiveInterval &LI, LaneBitmask &ShrinkMask);
2544 void pruneMainSegments(LiveInterval &LI, bool &ShrinkMainRange);
2552 LiveInterval *LI = nullptr);
2596 const LiveInterval &LI = LIS->getInterval(SrcReg); in followCopyChain()
2606 for (const LiveInterval::SubRange &S : LI.subranges()) { in followCopyChain()
2888 for (LiveInterval::SubRange &OtherSR : OtherLI.subranges()) { in analyzeValue()
2993 LiveInterval::iterator OtherI = Other.LR.find(VNI->def); in taintExtent()
3230 void JoinVals::pruneSubRegValues(LiveInterval &LI, LaneBitmask &ShrinkMask) { in pruneSubRegValues()
3250 for (LiveInterval::SubRange &S : LI.subranges()) { in pruneSubRegValues()
3300 static bool isDefInSubRange(LiveInterval &LI, SlotIndex Def) { in isDefInSubRange()
3301 for (LiveInterval::SubRange &SR : LI.subranges()) { in isDefInSubRange()
3309 void JoinVals::pruneMainSegments(LiveInterval &LI, bool &ShrinkMainRange) { in pruneMainSegments()
3337 LiveInterval *LI) { in eraseInstrs()
3379 for (LiveInterval::SubRange &SR : LI->subranges()) { in eraseInstrs()
3493 void RegisterCoalescer::mergeSubRangeInto(LiveInterval &LI, in mergeSubRangeInto()
3501 [this, &Allocator, &ToMerge, &CP](LiveInterval::SubRange &SR) { in mergeSubRangeInto()
3513 bool RegisterCoalescer::isHighCostLiveInterval(LiveInterval &LI) { in isHighCostLiveInterval()
3526 LiveInterval &RHS = LIS->getInterval(CP.getSrcReg()); in joinVirtRegs()
3527 LiveInterval &LHS = LIS->getInterval(CP.getDstReg()); in joinVirtRegs()
3563 for (LiveInterval::SubRange &R : LHS.subranges()) { in joinVirtRegs()
3579 for (LiveInterval::SubRange &R : RHS.subranges()) { in joinVirtRegs()
3905 LiveInterval &LI = LIS->getInterval(reg); in lateLiveIntervalUpdate()
3965 const LiveInterval &DstLI = LIS->getInterval(DstReg); in applyTerminalRule()
4180 LiveInterval &LI = LIS->getInterval(Reg); in runOnMachineFunction()
4191 for (LiveInterval::SubRange &S : LI.subranges()) { in runOnMachineFunction()