• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/llvm-project/llvm/lib/Target/WebAssembly/

Lines Matching refs:LIS

102                                           LiveIntervals &LIS) {
129 LIS.InsertMachineInstrInMaps(*Const);
271 const LiveIntervals &LIS) {
276 // MRI doesn't know what the Def is. Try asking LIS.
277 if (const VNInfo *ValNo = LIS.getInterval(Reg).getVNInfoBefore(
278 LIS.getInstructionIndex(*Insert)))
279 return LIS.getInstructionFromIndex(ValNo->def);
288 MachineDominatorTree &MDT, LiveIntervals &LIS) {
294 const LiveInterval &LI = LIS.getInterval(Reg);
296 LI.getVNInfoAt(LIS.getInstructionIndex(*Def).getRegSlot());
299 const auto &Result = LI.Query(LIS.getInstructionIndex(*I.getParent()));
404 LiveIntervals &LIS,
406 const LiveInterval &LI = LIS.getInterval(Reg);
409 VNInfo *OneUseVNI = LI.getVNInfoBefore(LIS.getInstructionIndex(*OneUseInst));
416 VNInfo *UseVNI = LI.getVNInfoBefore(LIS.getInstructionIndex(*UseInst));
474 static void shrinkToUses(LiveInterval &LI, LiveIntervals &LIS) {
475 if (LIS.shrinkToUses(&LI)) {
477 LIS.splitSeparateComponents(LI, SplitLIs);
485 MachineInstr *Insert, LiveIntervals &LIS,
493 LIS.handleMove(*Def);
507 LIS.createAndComputeVirtRegInterval(NewReg);
510 LiveInterval &LI = LIS.getInterval(Reg);
511 LI.removeSegment(LIS.getInstructionIndex(*Def).getRegSlot(),
512 LIS.getInstructionIndex(*Op.getParent()).getRegSlot(),
530 MachineBasicBlock::instr_iterator Insert, LiveIntervals &LIS,
542 LIS.InsertMachineInstrInMaps(*Clone);
543 LIS.createAndComputeVirtRegInterval(NewReg);
552 LiveInterval &LI = LIS.getInterval(Reg);
553 shrinkToUses(LI, LIS);
554 IsDead = !LI.liveAt(LIS.getInstructionIndex(Def).getDeadSlot());
561 SlotIndex Idx = LIS.getInstructionIndex(Def).getRegSlot();
562 LIS.removePhysRegDefAt(WebAssembly::ARGUMENTS, Idx);
563 LIS.removeInterval(Reg);
564 LIS.RemoveMachineInstrFromMaps(Def);
598 MachineInstr *Insert, LiveIntervals &LIS, WebAssemblyFunctionInfo &MFI,
606 LIS.handleMove(*Def);
619 SlotIndex TeeIdx = LIS.InsertMachineInstrInMaps(*Tee).getRegSlot();
620 SlotIndex DefIdx = LIS.getInstructionIndex(*Def).getRegSlot();
625 LiveInterval &LI = LIS.getInterval(Reg);
630 shrinkToUses(LI, LIS);
633 LIS.createAndComputeVirtRegInterval(TeeReg);
634 LIS.createAndComputeVirtRegInterval(DefReg);
780 auto &LIS = getAnalysis<LiveIntervals>();
818 MachineInstr *Def = getVRegDef(Reg, Insert, MRI, LIS);
859 if (CanMove && hasOneUse(Reg, Def, MRI, MDT, LIS)) {
860 Insert = moveForSingleUse(Reg, Op, Def, MBB, Insert, LIS, MFI, MRI);
864 LIS, MFI, MRI, TII, TRI);
866 oneUseDominatesOtherUses(Reg, Op, MBB, MRI, MDT, LIS, MFI)) {
867 Insert = moveAndTeeForMultiUse(Reg, Op, Def, MBB, Insert, LIS, MFI,
882 convertImplicitDefToConstZero(Insert, MRI, TII, MF, LIS);