Lines Matching refs:LIS
131 LiveIntervals *LIS = nullptr; member in __anoncc82f7ba0111::RegisterCoalescer
357 if (LIS->shrinkToUses(LI, Dead)) { in shrinkToUses()
361 LIS->splitSeparateComponents(*LI, SplitLIs); in shrinkToUses()
371 LIS->RemoveMachineInstrFromMaps(*MI); in deleteInstr()
608 LiveRangeEdit(nullptr, NewRegs, *MF, *LIS, in eliminateDeadDefs()
616 return LiveRangeEdit(nullptr, NewRegs, *MF, *LIS, nullptr, this) in allUsesAvailableAt()
631 LIS->getInterval(CP.isFlipped() ? CP.getDstReg() : CP.getSrcReg()); in adjustCopiesBackFrom()
633 LIS->getInterval(CP.isFlipped() ? CP.getSrcReg() : CP.getDstReg()); in adjustCopiesBackFrom()
634 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in adjustCopiesBackFrom()
670 MachineInstr *ACopyMI = LIS->getInstructionFromIndex(AValNo->def); in adjustCopiesBackFrom()
684 LIS->getInstructionFromIndex(ValS->end.getPrevSlot()); in adjustCopiesBackFrom()
722 LIS->getMBBStartIdx(LIS->getMBBFromIndex(FillerStart)); in adjustCopiesBackFrom()
768 if (LIS->hasPHIKill(IntA, AValNo)) in hasOtherReachingDefs()
819 LIS->getInterval(CP.isFlipped() ? CP.getDstReg() : CP.getSrcReg()); in removeCopyByCommutingDef()
821 LIS->getInterval(CP.isFlipped() ? CP.getSrcReg() : CP.getDstReg()); in removeCopyByCommutingDef()
845 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in removeCopyByCommutingDef()
854 MachineInstr *DefMI = LIS->getInstructionFromIndex(AValNo->def); in removeCopyByCommutingDef()
895 SlotIndex UseIdx = LIS->getInstructionIndex(*UseMI); in removeCopyByCommutingDef()
919 LIS->ReplaceMachineInstrInMaps(*DefMI, *NewMI); in removeCopyByCommutingDef()
946 SlotIndex UseIdx = LIS->getInstructionIndex(*UseMI).getRegSlot(true); in removeCopyByCommutingDef()
989 BumpPtrAllocator &Allocator = LIS->getVNInfoAllocator(); in removeCopyByCommutingDef()
1000 const SlotIndexes &Indexes = *LIS->getSlotIndexes(); in removeCopyByCommutingDef()
1044 LIS->removeVRegDefAt(IntA, AValNo->def); in removeCopyByCommutingDef()
1114 LIS->getInterval(CP.isFlipped() ? CP.getDstReg() : CP.getSrcReg()); in removePartialRedundancy()
1116 LIS->getInterval(CP.isFlipped() ? CP.getSrcReg() : CP.getDstReg()); in removePartialRedundancy()
1119 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getRegSlot(true); in removePartialRedundancy()
1126 if (IntB.overlaps(LIS->getMBBStartIdx(&MBB), CopyIdx)) in removePartialRedundancy()
1134 VNInfo *PVal = IntA.getVNInfoBefore(LIS->getMBBEndIdx(Pred)); in removePartialRedundancy()
1135 MachineInstr *DefMI = LIS->getInstructionFromIndex(PVal->def); in removePartialRedundancy()
1154 if (PVal->def < VNI->def && VNI->def < LIS->getMBBEndIdx(Pred)) { in removePartialRedundancy()
1189 SlotIndex InsPosIdx = LIS->getInstructionIndex(*InsPos).getRegSlot(true); in removePartialRedundancy()
1190 if (IntB.overlaps(InsPosIdx, LIS->getMBBEndIdx(CopyLeftBB))) in removePartialRedundancy()
1202 LIS->InsertMachineInstrInMaps(*NewCopyMI).getRegSlot(); in removePartialRedundancy()
1203 IntB.createDeadDef(NewCopyIdx, LIS->getVNInfoAllocator()); in removePartialRedundancy()
1205 SR.createDeadDef(NewCopyIdx, LIS->getVNInfoAllocator()); in removePartialRedundancy()
1226 LIS->pruneValue(*static_cast<LiveRange *>(&IntB), CopyIdx.getRegSlot(), in removePartialRedundancy()
1230 LIS->extendToIndices(IntB, EndPoints); in removePartialRedundancy()
1237 LIS->pruneValue(SR, CopyIdx.getRegSlot(), &EndPoints); in removePartialRedundancy()
1255 *LIS->getSlotIndexes()); in removePartialRedundancy()
1256 LIS->extendToIndices(SR, EndPoints, Undefs); in removePartialRedundancy()
1293 LiveInterval &SrcInt = LIS->getInterval(SrcReg); in reMaterializeTrivialDef()
1294 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI); in reMaterializeTrivialDef()
1300 MachineInstr *DefMI = LIS->getInstructionFromIndex(ValNo->def); in reMaterializeTrivialDef()
1406 LIS->ReplaceMachineInstrInMaps(*CopyMI, NewMI); in reMaterializeTrivialDef()
1436 LiveInterval &DstInt = LIS->getInterval(DstReg); in reMaterializeTrivialDef()
1465 SlotIndex CurrIdx = LIS->getInstructionIndex(NewMI); in reMaterializeTrivialDef()
1469 VNInfo::Allocator& Alloc = LIS->getVNInfoAllocator(); in reMaterializeTrivialDef()
1491 SlotIndex CurrIdx = LIS->getInstructionIndex(NewMI); in reMaterializeTrivialDef()
1496 VNInfo::Allocator &Alloc = LIS->getVNInfoAllocator(); in reMaterializeTrivialDef()
1544 SlotIndex NewMIIdx = LIS->getInstructionIndex(NewMI); in reMaterializeTrivialDef()
1547 if (LiveRange *LR = LIS->getCachedRegUnit(*Units)) in reMaterializeTrivialDef()
1548 LR->createDeadDef(NewMIIdx.getRegSlot(), LIS->getVNInfoAllocator()); in reMaterializeTrivialDef()
1558 SlotIndex NewMIIdx = LIS->getInstructionIndex(NewMI); in reMaterializeTrivialDef()
1562 if (LiveRange *LR = LIS->getCachedRegUnit(*Units)) in reMaterializeTrivialDef()
1563 LR->createDeadDef(NewMIIdx.getRegSlot(), LIS->getVNInfoAllocator()); in reMaterializeTrivialDef()
1624 SlotIndex Idx = LIS->getInstructionIndex(*CopyMI); in eliminateUndefCopy()
1625 const LiveInterval &SrcLI = LIS->getInterval(SrcReg); in eliminateUndefCopy()
1640 LiveInterval &DstLI = LIS->getInterval(DstReg); in eliminateUndefCopy()
1678 LIS->removeVRegDefAt(DstLI, RegIndex); in eliminateUndefCopy()
1685 SlotIndex UseIdx = LIS->getInstructionIndex(MI); in eliminateUndefCopy()
1714 LIS->shrinkToUses(&DstLI); in eliminateUndefCopy()
1748 LiveInterval *DstInt = DstIsPhys ? nullptr : &LIS->getInterval(DstReg); in updateRegDefsUses()
1758 SlotIndex UseIdx = LIS->getInstructionIndex(MI).getRegSlot(true); in updateRegDefsUses()
1784 Reads = DstInt->liveAt(LIS->getInstructionIndex(*UseMI)); in updateRegDefsUses()
1802 BumpPtrAllocator &Allocator = LIS->getVNInfoAllocator(); in updateRegDefsUses()
1814 ? LIS->getSlotIndexes()->getIndexBefore(*UseMI) in updateRegDefsUses()
1815 : LIS->getInstructionIndex(*UseMI); in updateRegDefsUses()
1830 dbgs() << LIS->getInstructionIndex(*UseMI) << "\t"; in updateRegDefsUses()
1845 LiveInterval &JoinVInt = LIS->getInterval(CP.getSrcReg()); in canJoinPhys()
1857 SlotIndex PredEnd = LIS->getMBBEndIdx(Pred); in copyValueUndefInPredecessors()
1879 SlotIndex Pos = LIS->getInstructionIndex(*MO.getParent()); in setUndefOnPrunedSubRegUses()
1894 LIS->shrinkToUses(&LI); in setUndefOnPrunedSubRegUses()
1899 LLVM_DEBUG(dbgs() << LIS->getInstructionIndex(*CopyMI) << '\t' << *CopyMI); in joinCopy()
1917 CP.getNewRC(), *LIS)) { in joinCopy()
1948 LiveInterval &LI = LIS->getInterval(CP.getSrcReg()); in joinCopy()
1950 const SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI); in joinCopy()
2008 if (!CP.isPartial() && LIS->getInterval(CP.getSrcReg()).size() > in joinCopy()
2009 LIS->getInterval(CP.getDstReg()).size()) in joinCopy()
2053 LiveInterval &DstLI = LIS->getInterval(DstReg); in joinCopy()
2099 LiveInterval &LI = LIS->getInterval(CP.getDstReg()); in joinCopy()
2105 LIS->shrinkToUses(S, LI.reg()); in joinCopy()
2117 LiveInterval &LI = LIS->getInterval(CP.getDstReg()); in joinCopy()
2123 LIS->removeInterval(CP.getSrcReg()); in joinCopy()
2135 dbgs() << LIS->getInterval(CP.getDstReg()); in joinCopy()
2148 LiveInterval &RHS = LIS->getInterval(SrcReg); in joinReservedPhysReg()
2167 if (RHS.overlaps(LIS->getRegUnit(*UI))) { in joinReservedPhysReg()
2176 if (LIS->checkRegMaskInterference(RHS, RegMaskUsable) && in joinReservedPhysReg()
2212 if (!LIS->intervalIsInOneMBB(RHS)) { in joinReservedPhysReg()
2219 SlotIndex CopyRegIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in joinReservedPhysReg()
2220 SlotIndex DestRegIdx = LIS->getInstructionIndex(DestMI).getRegSlot(); in joinReservedPhysReg()
2226 SlotIndexes *Indexes = LIS->getSlotIndexes(); in joinReservedPhysReg()
2229 MachineInstr *MI = LIS->getInstructionFromIndex(SI); in joinReservedPhysReg()
2242 LIS->removePhysRegDefAt(DstReg.asMCReg(), CopyRegIdx); in joinReservedPhysReg()
2245 LiveRange &LR = LIS->getRegUnit(*UI); in joinReservedPhysReg()
2246 LR.createDeadDef(DestRegIdx, LIS->getVNInfoAllocator()); in joinReservedPhysReg()
2355 LiveIntervals *LIS; member in __anoncc82f7ba0311::JoinVals
2509 NewVNInfo(newVNInfo), CP(cp), LIS(lis), Indexes(LIS->getSlotIndexes()), in JoinVals()
2591 const LiveInterval &LI = LIS->getInterval(SrcReg); in followCopyChain()
2871 auto &OtherLI = LIS->getInterval(Other.Reg); in analyzeValue()
3129 LIS->pruneValue(Other.LR, Def, &EndPoints); in pruneValues()
3167 LIS->pruneValue(LR, Def, &EndPoints); in pruneValues()
3257 LIS->pruneValue(S, Def, &EndPoints); in pruneSubRegValues()
3266 LIS->extendToIndices(S, EndPoints); in pruneSubRegValues()
3415 LIS->RemoveMachineInstrFromMaps(*MI); in eraseInstrs()
3430 NewVNInfo, CP, LIS, TRI, true, true); in joinSubRegRanges()
3432 NewVNInfo, CP, LIS, TRI, true, true); in joinSubRegRanges()
3485 LIS->extendToIndices(LRange, EndPoints); in joinSubRegRanges()
3493 BumpPtrAllocator &Allocator = LIS->getVNInfoAllocator(); in mergeSubRangeInto()
3505 *LIS->getSlotIndexes(), *TRI, ComposeSubRegIdx); in mergeSubRangeInto()
3521 LiveInterval &RHS = LIS->getInterval(CP.getSrcReg()); in joinVirtRegs()
3522 LiveInterval &LHS = LIS->getInterval(CP.getDstReg()); in joinVirtRegs()
3525 NewVNInfo, CP, LIS, TRI, false, TrackSubRegLiveness); in joinVirtRegs()
3527 NewVNInfo, CP, LIS, TRI, false, TrackSubRegLiveness); in joinVirtRegs()
3545 BumpPtrAllocator &Allocator = LIS->getVNInfoAllocator(); in joinVirtRegs()
3603 shrinkToUses(&LIS->getInterval(ShrinkRegs.pop_back_val())); in joinVirtRegs()
3687 LIS->extendToIndices((LiveRange&)LHS, EndPoints); in joinVirtRegs()
3699 const SlotIndexes &Slots = *LIS->getSlotIndexes(); in buildVRegToDbgValueMap()
3879 static bool isLocalCopy(MachineInstr *Copy, const LiveIntervals *LIS) { in isLocalCopy() argument
3892 return LIS->intervalIsInOneMBB(LIS->getInterval(SrcReg)) in isLocalCopy()
3893 || LIS->intervalIsInOneMBB(LIS->getInterval(DstReg)); in isLocalCopy()
3898 if (!LIS->hasInterval(reg)) in lateLiveIntervalUpdate()
3900 LiveInterval &LI = LIS->getInterval(reg); in lateLiveIntervalUpdate()
3960 const LiveInterval &DstLI = LIS->getInterval(DstReg); in applyTerminalRule()
3982 if (LIS->getInterval(OtherReg).overlaps(DstLI)) { in applyTerminalRule()
4009 if (isLocalCopy(&MI, LIS)) { in copyCoalesceInMBB()
4119 LIS = &getAnalysis<LiveIntervals>(); in runOnMachineFunction()
4129 SlotIndexes *Slots = LIS->getSlotIndexes(); in runOnMachineFunction()
4175 LiveInterval &LI = LIS->getInterval(Reg); in runOnMachineFunction()
4214 LIS->print(O, m); in print()