Lines Matching refs:CopyMI

188     bool joinCopy(MachineInstr *CopyMI, bool &Again);
218 bool adjustCopiesBackFrom(const CoalescerPair &CP, MachineInstr *CopyMI);
234 MachineInstr *CopyMI);
237 bool removePartialRedundancy(const CoalescerPair &CP, MachineInstr &CopyMI);
241 bool reMaterializeTrivialDef(const CoalescerPair &CP, MachineInstr *CopyMI,
267 MachineInstr *eliminateUndefCopy(MachineInstr *CopyMI);
534 MachineInstr *CopyMI) { in adjustCopiesBackFrom() argument
542 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in adjustCopiesBackFrom()
593 if (!ValSEndInst || ValSEndInst->getParent() != CopyMI->getParent()) in adjustCopiesBackFrom()
644 CopyMI->substituteRegister(IntA.reg, IntB.reg, 0, *TRI); in adjustCopiesBackFrom()
718 MachineInstr *CopyMI) { in removeCopyByCommutingDef() argument
748 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in removeCopyByCommutingDef()
863 if (UseMI == CopyMI) in removeCopyByCommutingDef()
996 MachineInstr &CopyMI) { in removePartialRedundancy() argument
998 if (!CopyMI.isFullCopy()) in removePartialRedundancy()
1001 MachineBasicBlock &MBB = *CopyMI.getParent(); in removePartialRedundancy()
1014 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getRegSlot(true); in removePartialRedundancy()
1090 << printMBBReference(*CopyLeftBB) << '\t' << CopyMI); in removePartialRedundancy()
1093 MachineInstr *NewCopyMI = BuildMI(*CopyLeftBB, InsPos, CopyMI.getDebugLoc(), in removePartialRedundancy()
1108 << printMBBReference(MBB) << '\t' << CopyMI); in removePartialRedundancy()
1116 deleteInstr(&CopyMI); in removePartialRedundancy()
1175 MachineInstr *CopyMI, in reMaterializeTrivialDef() argument
1186 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI); in reMaterializeTrivialDef()
1212 MachineOperand &DstOperand = CopyMI->getOperand(0); in reMaterializeTrivialDef()
1247 DebugLoc DL = CopyMI->getDebugLoc(); in reMaterializeTrivialDef()
1248 MachineBasicBlock *MBB = CopyMI->getParent(); in reMaterializeTrivialDef()
1250 std::next(MachineBasicBlock::iterator(CopyMI)); in reMaterializeTrivialDef()
1281 ImplicitOps.reserve(CopyMI->getNumOperands() - in reMaterializeTrivialDef()
1282 CopyMI->getDesc().getNumOperands()); in reMaterializeTrivialDef()
1283 for (unsigned I = CopyMI->getDesc().getNumOperands(), in reMaterializeTrivialDef()
1284 E = CopyMI->getNumOperands(); in reMaterializeTrivialDef()
1286 MachineOperand &MO = CopyMI->getOperand(I); in reMaterializeTrivialDef()
1295 LIS->ReplaceMachineInstrInMaps(*CopyMI, NewMI); in reMaterializeTrivialDef()
1296 CopyMI->eraseFromParent(); in reMaterializeTrivialDef()
1297 ErasedInstrs.insert(CopyMI); in reMaterializeTrivialDef()
1484 MachineInstr *RegisterCoalescer::eliminateUndefCopy(MachineInstr *CopyMI) { in eliminateUndefCopy() argument
1497 isMoveInstr(*TRI, CopyMI, SrcReg, DstReg, SrcSubIdx, DstSubIdx); in eliminateUndefCopy()
1499 SlotIndex Idx = LIS->getInstructionIndex(*CopyMI); in eliminateUndefCopy()
1521 CopyMI->setDesc(TII->get(TargetOpcode::IMPLICIT_DEF)); in eliminateUndefCopy()
1522 for (unsigned i = CopyMI->getNumOperands(); i != 0; --i) { in eliminateUndefCopy()
1523 MachineOperand &MO = CopyMI->getOperand(i-1); in eliminateUndefCopy()
1525 CopyMI->RemoveOperand(i-1); in eliminateUndefCopy()
1529 return CopyMI; in eliminateUndefCopy()
1586 for (MachineOperand &MO : CopyMI->operands()) in eliminateUndefCopy()
1591 return CopyMI; in eliminateUndefCopy()
1720 bool RegisterCoalescer::joinCopy(MachineInstr *CopyMI, bool &Again) { in joinCopy() argument
1722 LLVM_DEBUG(dbgs() << LIS->getInstructionIndex(*CopyMI) << '\t' << *CopyMI); in joinCopy()
1725 if (!CP.setRegisters(CopyMI)) { in joinCopy()
1739 if (!TRI->shouldCoalesce(CopyMI, SrcRC, SrcIdx, DstRC, DstIdx, in joinCopy()
1749 if (!CP.isPhys() && CopyMI->allDefsAreDead()) { in joinCopy()
1751 DeadDefs.push_back(CopyMI); in joinCopy()
1759 if (MachineInstr *UndefMI = eliminateUndefCopy(CopyMI)) { in joinCopy()
1762 deleteInstr(CopyMI); in joinCopy()
1773 const SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI); in joinCopy()
1791 deleteInstr(CopyMI); in joinCopy()
1804 if (reMaterializeTrivialDef(CP, CopyMI, IsDefCopy)) in joinCopy()
1843 if (reMaterializeTrivialDef(CP, CopyMI, IsDefCopy)) in joinCopy()
1849 bool Changed = adjustCopiesBackFrom(CP, CopyMI); in joinCopy()
1852 std::tie(Changed, Shrink) = removeCopyByCommutingDef(CP, CopyMI); in joinCopy()
1854 deleteInstr(CopyMI); in joinCopy()
1869 if (removePartialRedundancy(CP, *CopyMI)) in joinCopy()
1893 ErasedInstrs.erase(CopyMI); in joinCopy()
1993 MachineInstr *CopyMI; in joinReservedPhysReg() local
2002 CopyMI = MRI->getVRegDef(SrcReg); in joinReservedPhysReg()
2022 CopyMI = &*MRI->use_instr_nodbg_begin(SrcReg); in joinReservedPhysReg()
2023 SlotIndex CopyRegIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in joinReservedPhysReg()
2054 deleteInstr(CopyMI); in joinReservedPhysReg()