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

Lines Matching refs:Insert

271 static MachineInstr *getVRegDef(unsigned Reg, const MachineInstr *Insert,
280 LIS.getInstructionIndex(*Insert)))
313 // Test whether it's safe to move Def to just before Insert.
319 const MachineInstr *Insert, AliasAnalysis &AA,
324 assert(DefI->getParent() == Insert->getParent());
325 assert(UseI->getParent() == Insert->getParent());
359 if (NextI == Insert)
375 // If the register is dead here and at Insert, ignore it.
376 if (MO.isDead() && Insert->definesRegister(Reg) &&
377 !Insert->readsRegister(Reg))
408 // Scan through the intervening instructions between DefI and Insert.
409 MachineBasicBlock::const_iterator D(DefI), I(Insert);
521 MachineInstr *Insert, LiveIntervals &LIS,
527 MBB.splice(Insert, &MBB, Def);
528 DefDIs.move(Insert);
566 MachineBasicBlock::instr_iterator Insert, LiveIntervals &LIS,
575 TII->reMaterialize(MBB, Insert, NewReg, 0, Def, *TRI);
577 MachineInstr *Clone = &*std::prev(Insert);
594 // Move or clone corresponding DBG_VALUEs to the 'Insert' location.
603 DefDIs.move(&*Insert);
606 DefDIs.clone(&*Insert, NewReg);
618 /// INST ..., Reg, ... // Insert
624 /// DefReg = INST ... // Def (to become the new Insert)
626 /// INST ..., TeeReg, ... // Insert
634 MachineInstr *Insert, LiveIntervals &LIS, WebAssemblyFunctionInfo &MFI,
641 MBB.splice(Insert, &MBB, Def);
649 MachineInstr *Tee = BuildMI(MBB, Insert, Insert->getDebugLoc(),
658 DefDIs.move(Insert);
677 DefDIs.clone(Insert, TeeReg);
694 explicit TreeWalkerState(MachineInstr *Insert) {
695 const iterator_range<mop_iterator> &Range = Insert->explicit_uses();
772 /// it, commute Insert's operands and prepare to revisit it.
773 void maybeCommute(MachineInstr *Insert, TreeWalkerState &TreeWalker,
779 TII->commuteInstruction(*Insert, /*NewMI=*/false, Operand0, Operand1);
782 } else if (!Declined && TreeWalker.hasRemainingOperands(Insert)) {
785 if (TII->findCommutedOpIndices(*Insert, Operand0, Operand1)) {
787 TII->commuteInstruction(*Insert, /*NewMI=*/false, Operand0, Operand1);
788 TreeWalker.resetTopOperands(Insert);
825 MachineInstr *Insert = &*MII;
828 if (Insert->isInlineAsm())
832 if (Insert->isDebugValue())
838 TreeWalkerState TreeWalker(Insert);
854 MachineInstr *DefI = getVRegDef(Reg, Insert, MRI, LIS);
897 isSafeToMove(Def, &Use, Insert, AA, MFI, MRI) &&
900 Insert = moveForSingleUse(Reg, Use, DefI, MBB, Insert, LIS, MFI, MRI);
908 Insert =
909 rematerializeCheapDef(Reg, Use, *DefI, MBB, Insert->getIterator(),
913 Insert = moveAndTeeForMultiUse(Reg, Use, DefI, MBB, Insert, LIS, MFI,
919 Commuting.maybeCommute(Insert, TreeWalker, TII);
927 auto *SubsequentDef = Insert->defs().begin();
929 while (SubsequentDef != Insert->defs().end() &&
946 if (Insert->getOpcode() == TargetOpcode::IMPLICIT_DEF)
947 convertImplicitDefToConstZero(Insert, MRI, TII, MF, LIS);
952 TreeWalker.pushOperands(Insert);
957 if (Insert != &*MII) {
959 MII = MachineBasicBlock::iterator(Insert).getReverse();