Lines Matching defs:LIS
100 LiveIntervals &LIS) {
265 const LiveIntervals &LIS) {
270 // MRI doesn't know what the Def is. Try asking LIS.
271 if (const VNInfo *ValNo = LIS.getInterval(Reg).getVNInfoBefore(
272 LIS.getInstructionIndex(*Insert)))
273 return LIS.getInstructionFromIndex(ValNo->def);
283 LiveIntervals &LIS) {
289 const LiveInterval &LI = LIS.getInterval(Reg);
291 LI.getVNInfoAt(LIS.getInstructionIndex(*Def).getRegSlot());
294 const auto &Result = LI.Query(LIS.getInstructionIndex(*I.getParent()));
437 LiveIntervals &LIS,
439 const LiveInterval &LI = LIS.getInterval(Reg);
442 VNInfo *OneUseVNI = LI.getVNInfoBefore(LIS.getInstructionIndex(*OneUseInst));
449 VNInfo *UseVNI = LI.getVNInfoBefore(LIS.getInstructionIndex(*UseInst));
512 static void shrinkToUses(LiveInterval &LI, LiveIntervals &LIS) {
513 if (LIS.shrinkToUses(&LI)) {
515 LIS.splitSeparateComponents(LI, SplitLIs);
523 MachineInstr *Insert, LiveIntervals &LIS,
530 LIS.handleMove(*Def);
544 LIS.createAndComputeVirtRegInterval(NewReg);
547 LiveInterval &LI = LIS.getInterval(Reg);
548 LI.removeSegment(LIS.getInstructionIndex(*Def).getRegSlot(),
549 LIS.getInstructionIndex(*Op.getParent()).getRegSlot(),
572 MachineBasicBlock::instr_iterator Insert, LiveIntervals &LIS,
585 LIS.InsertMachineInstrInMaps(*Clone);
586 LIS.createAndComputeVirtRegInterval(NewReg);
595 LiveInterval &LI = LIS.getInterval(Reg);
596 shrinkToUses(LI, LIS);
597 IsDead = !LI.liveAt(LIS.getInstructionIndex(Def).getDeadSlot());
603 SlotIndex Idx = LIS.getInstructionIndex(Def).getRegSlot();
604 LIS.removePhysRegDefAt(MCRegister::from(WebAssembly::ARGUMENTS), Idx);
605 LIS.removeInterval(Reg);
606 LIS.RemoveMachineInstrFromMaps(Def);
635 MachineInstr *Insert, LiveIntervals &LIS, WebAssemblyFunctionInfo &MFI,
646 LIS.handleMove(*Def);
656 SlotIndex TeeIdx = LIS.InsertMachineInstrInMaps(*Tee).getRegSlot();
657 SlotIndex DefIdx = LIS.getInstructionIndex(*Def).getRegSlot();
660 LiveInterval &LI = LIS.getInterval(Reg);
665 shrinkToUses(LI, LIS);
668 LIS.createAndComputeVirtRegInterval(TeeReg);
669 LIS.createAndComputeVirtRegInterval(DefReg);
816 auto &LIS = getAnalysis<LiveIntervalsWrapperPass>().getLIS();
854 MachineInstr *DefI = getVRegDef(Reg, Insert, MRI, LIS);
881 if (CanMove && hasOneNonDBGUse(Reg, DefI, MRI, MDT, LIS)) {
882 Insert = moveForSingleUse(Reg, Use, DefI, MBB, Insert, LIS, MFI, MRI);
892 LIS, MFI, MRI, TII, TRI);
894 LIS, MFI)) {
895 Insert = moveAndTeeForMultiUse(Reg, Use, DefI, MBB, Insert, LIS, MFI,
929 convertImplicitDefToConstZero(Insert, MRI, TII, MF, LIS);