Lines Matching defs:LIS

102                                           LiveIntervals &LIS) {
267 const LiveIntervals &LIS) {
272 // MRI doesn't know what the Def is. Try asking LIS.
273 if (const VNInfo *ValNo = LIS.getInterval(Reg).getVNInfoBefore(
274 LIS.getInstructionIndex(*Insert)))
275 return LIS.getInstructionFromIndex(ValNo->def);
285 LiveIntervals &LIS) {
291 const LiveInterval &LI = LIS.getInterval(Reg);
293 LI.getVNInfoAt(LIS.getInstructionIndex(*Def).getRegSlot());
296 const auto &Result = LI.Query(LIS.getInstructionIndex(*I.getParent()));
439 LiveIntervals &LIS,
441 const LiveInterval &LI = LIS.getInterval(Reg);
444 VNInfo *OneUseVNI = LI.getVNInfoBefore(LIS.getInstructionIndex(*OneUseInst));
451 VNInfo *UseVNI = LI.getVNInfoBefore(LIS.getInstructionIndex(*UseInst));
514 static void shrinkToUses(LiveInterval &LI, LiveIntervals &LIS) {
515 if (LIS.shrinkToUses(&LI)) {
517 LIS.splitSeparateComponents(LI, SplitLIs);
525 MachineInstr *Insert, LiveIntervals &LIS,
532 LIS.handleMove(*Def);
546 LIS.createAndComputeVirtRegInterval(NewReg);
549 LiveInterval &LI = LIS.getInterval(Reg);
550 LI.removeSegment(LIS.getInstructionIndex(*Def).getRegSlot(),
551 LIS.getInstructionIndex(*Op.getParent()).getRegSlot(),
574 MachineBasicBlock::instr_iterator Insert, LiveIntervals &LIS,
587 LIS.InsertMachineInstrInMaps(*Clone);
588 LIS.createAndComputeVirtRegInterval(NewReg);
597 LiveInterval &LI = LIS.getInterval(Reg);
598 shrinkToUses(LI, LIS);
599 IsDead = !LI.liveAt(LIS.getInstructionIndex(Def).getDeadSlot());
605 SlotIndex Idx = LIS.getInstructionIndex(Def).getRegSlot();
606 LIS.removePhysRegDefAt(MCRegister::from(WebAssembly::ARGUMENTS), Idx);
607 LIS.removeInterval(Reg);
608 LIS.RemoveMachineInstrFromMaps(Def);
637 MachineInstr *Insert, LiveIntervals &LIS, WebAssemblyFunctionInfo &MFI,
648 LIS.handleMove(*Def);
658 SlotIndex TeeIdx = LIS.InsertMachineInstrInMaps(*Tee).getRegSlot();
659 SlotIndex DefIdx = LIS.getInstructionIndex(*Def).getRegSlot();
662 LiveInterval &LI = LIS.getInterval(Reg);
667 shrinkToUses(LI, LIS);
670 LIS.createAndComputeVirtRegInterval(TeeReg);
671 LIS.createAndComputeVirtRegInterval(DefReg);
818 auto &LIS = getAnalysis<LiveIntervalsWrapperPass>().getLIS();
856 MachineInstr *DefI = getVRegDef(Reg, Insert, MRI, LIS);
883 if (CanMove && hasOneNonDBGUse(Reg, DefI, MRI, MDT, LIS)) {
884 Insert = moveForSingleUse(Reg, Use, DefI, MBB, Insert, LIS, MFI, MRI);
894 LIS, MFI, MRI, TII, TRI);
896 LIS, MFI)) {
897 Insert = moveAndTeeForMultiUse(Reg, Use, DefI, MBB, Insert, LIS, MFI,
931 convertImplicitDefToConstZero(Insert, MRI, TII, MF, LIS);