Lines Matching refs:CopyMI
239 bool joinCopy(MachineInstr *CopyMI, bool &Again,
276 bool adjustCopiesBackFrom(const CoalescerPair &CP, MachineInstr *CopyMI);
292 MachineInstr *CopyMI);
295 bool removePartialRedundancy(const CoalescerPair &CP, MachineInstr &CopyMI);
299 bool reMaterializeTrivialDef(const CoalescerPair &CP, MachineInstr *CopyMI,
325 MachineInstr *eliminateUndefCopy(MachineInstr *CopyMI);
616 MachineInstr *CopyMI) { in adjustCopiesBackFrom() argument
624 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in adjustCopiesBackFrom()
675 if (!ValSEndInst || ValSEndInst->getParent() != CopyMI->getParent()) in adjustCopiesBackFrom()
733 CopyMI->substituteRegister(IntA.reg(), IntB.reg(), 0, *TRI); in adjustCopiesBackFrom()
806 MachineInstr *CopyMI) { in removeCopyByCommutingDef() argument
836 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in removeCopyByCommutingDef()
947 if (UseMI == CopyMI) in removeCopyByCommutingDef()
1089 MachineInstr &CopyMI) { in removePartialRedundancy() argument
1091 if (!CopyMI.isFullCopy()) in removePartialRedundancy()
1094 MachineBasicBlock &MBB = *CopyMI.getParent(); in removePartialRedundancy()
1109 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getRegSlot(true); in removePartialRedundancy()
1185 << printMBBReference(*CopyLeftBB) << '\t' << CopyMI); in removePartialRedundancy()
1188 MachineInstr *NewCopyMI = BuildMI(*CopyLeftBB, InsPos, CopyMI.getDebugLoc(), in removePartialRedundancy()
1203 << printMBBReference(MBB) << '\t' << CopyMI); in removePartialRedundancy()
1206 const bool IsUndefCopy = CopyMI.getOperand(1).isUndef(); in removePartialRedundancy()
1213 deleteInstr(&CopyMI); in removePartialRedundancy()
1288 MachineInstr *CopyMI, in reMaterializeTrivialDef() argument
1299 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI); in reMaterializeTrivialDef()
1329 MachineOperand &DstOperand = CopyMI->getOperand(0); in reMaterializeTrivialDef()
1369 DebugLoc DL = CopyMI->getDebugLoc(); in reMaterializeTrivialDef()
1370 MachineBasicBlock *MBB = CopyMI->getParent(); in reMaterializeTrivialDef()
1372 std::next(MachineBasicBlock::iterator(CopyMI)); in reMaterializeTrivialDef()
1373 Edit.rematerializeAt(*MBB, MII, DstReg, RM, *TRI, false, SrcIdx, CopyMI); in reMaterializeTrivialDef()
1413 ImplicitOps.reserve(CopyMI->getNumOperands() - in reMaterializeTrivialDef()
1414 CopyMI->getDesc().getNumOperands()); in reMaterializeTrivialDef()
1415 for (unsigned I = CopyMI->getDesc().getNumOperands(), in reMaterializeTrivialDef()
1416 E = CopyMI->getNumOperands(); in reMaterializeTrivialDef()
1418 MachineOperand &MO = CopyMI->getOperand(I); in reMaterializeTrivialDef()
1428 CopyMI->eraseFromParent(); in reMaterializeTrivialDef()
1429 ErasedInstrs.insert(CopyMI); in reMaterializeTrivialDef()
1669 MachineInstr *RegisterCoalescer::eliminateUndefCopy(MachineInstr *CopyMI) { in eliminateUndefCopy() argument
1683 if(!isMoveInstr(*TRI, CopyMI, SrcReg, DstReg, SrcSubIdx, DstSubIdx)) in eliminateUndefCopy()
1686 SlotIndex Idx = LIS->getInstructionIndex(*CopyMI); in eliminateUndefCopy()
1711 for (unsigned i = CopyMI->getNumOperands(); i != 0; --i) { in eliminateUndefCopy()
1712 MachineOperand &MO = CopyMI->getOperand(i-1); in eliminateUndefCopy()
1715 CopyMI->removeOperand(i - 1); in eliminateUndefCopy()
1718 CopyMI->getOpcode() == TargetOpcode::SUBREG_TO_REG); in eliminateUndefCopy()
1719 CopyMI->removeOperand(i-1); in eliminateUndefCopy()
1723 CopyMI->setDesc(TII->get(TargetOpcode::IMPLICIT_DEF)); in eliminateUndefCopy()
1726 return CopyMI; in eliminateUndefCopy()
1782 for (MachineOperand &MO : CopyMI->all_defs()) in eliminateUndefCopy()
1787 return CopyMI; in eliminateUndefCopy()
1969 MachineInstr *CopyMI, bool &Again, in joinCopy() argument
1972 LLVM_DEBUG(dbgs() << LIS->getInstructionIndex(*CopyMI) << '\t' << *CopyMI); in joinCopy()
1975 if (!CP.setRegisters(CopyMI)) { in joinCopy()
1989 if (!TRI->shouldCoalesce(CopyMI, SrcRC, SrcIdx, DstRC, DstIdx, in joinCopy()
1999 if (!CP.isPhys() && CopyMI->allDefsAreDead()) { in joinCopy()
2001 DeadDefs.push_back(CopyMI); in joinCopy()
2009 if (MachineInstr *UndefMI = eliminateUndefCopy(CopyMI)) { in joinCopy()
2012 deleteInstr(CopyMI); in joinCopy()
2023 const SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI); in joinCopy()
2032 MachineBasicBlock *MBB = CopyMI->getParent(); in joinCopy()
2060 deleteInstr(CopyMI); in joinCopy()
2073 if (reMaterializeTrivialDef(CP, CopyMI, IsDefCopy)) in joinCopy()
2112 if (reMaterializeTrivialDef(CP, CopyMI, IsDefCopy)) in joinCopy()
2118 bool Changed = adjustCopiesBackFrom(CP, CopyMI); in joinCopy()
2121 std::tie(Changed, Shrink) = removeCopyByCommutingDef(CP, CopyMI); in joinCopy()
2123 deleteInstr(CopyMI); in joinCopy()
2138 if (removePartialRedundancy(CP, *CopyMI)) in joinCopy()
2162 if (ErasedInstrs.erase(CopyMI)) in joinCopy()
2164 CurrentErasedInstrs.insert(CopyMI); in joinCopy()
2265 MachineInstr *CopyMI; in joinReservedPhysReg() local
2274 CopyMI = MRI->getVRegDef(SrcReg); in joinReservedPhysReg()
2275 deleteInstr(CopyMI); in joinReservedPhysReg()
2295 CopyMI = &*MRI->use_instr_nodbg_begin(SrcReg); in joinReservedPhysReg()
2296 SlotIndex CopyRegIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in joinReservedPhysReg()
2320 deleteInstr(CopyMI); in joinReservedPhysReg()