Lines Matching refs:CopyMI
250 bool joinCopy(MachineInstr *CopyMI, bool &Again);
286 bool adjustCopiesBackFrom(const CoalescerPair &CP, MachineInstr *CopyMI);
302 MachineInstr *CopyMI);
305 bool removePartialRedundancy(const CoalescerPair &CP, MachineInstr &CopyMI);
309 bool reMaterializeTrivialDef(const CoalescerPair &CP, MachineInstr *CopyMI,
335 MachineInstr *eliminateUndefCopy(MachineInstr *CopyMI);
626 MachineInstr *CopyMI) { in adjustCopiesBackFrom() argument
634 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in adjustCopiesBackFrom()
685 if (!ValSEndInst || ValSEndInst->getParent() != CopyMI->getParent()) in adjustCopiesBackFrom()
742 CopyMI->substituteRegister(IntA.reg(), IntB.reg(), 0, *TRI); in adjustCopiesBackFrom()
815 MachineInstr *CopyMI) { in removeCopyByCommutingDef() argument
845 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in removeCopyByCommutingDef()
961 if (UseMI == CopyMI) in removeCopyByCommutingDef()
1103 MachineInstr &CopyMI) { in removePartialRedundancy() argument
1105 if (!CopyMI.isFullCopy()) in removePartialRedundancy()
1108 MachineBasicBlock &MBB = *CopyMI.getParent(); in removePartialRedundancy()
1123 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getRegSlot(true); in removePartialRedundancy()
1199 << printMBBReference(*CopyLeftBB) << '\t' << CopyMI); in removePartialRedundancy()
1202 MachineInstr *NewCopyMI = BuildMI(*CopyLeftBB, InsPos, CopyMI.getDebugLoc(), in removePartialRedundancy()
1217 << printMBBReference(MBB) << '\t' << CopyMI); in removePartialRedundancy()
1225 deleteInstr(&CopyMI); in removePartialRedundancy()
1287 MachineInstr *CopyMI, in reMaterializeTrivialDef() argument
1298 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI); in reMaterializeTrivialDef()
1324 MachineOperand &DstOperand = CopyMI->getOperand(0); in reMaterializeTrivialDef()
1362 DebugLoc DL = CopyMI->getDebugLoc(); in reMaterializeTrivialDef()
1363 MachineBasicBlock *MBB = CopyMI->getParent(); in reMaterializeTrivialDef()
1365 std::next(MachineBasicBlock::iterator(CopyMI)); in reMaterializeTrivialDef()
1396 ImplicitOps.reserve(CopyMI->getNumOperands() - in reMaterializeTrivialDef()
1397 CopyMI->getDesc().getNumOperands()); in reMaterializeTrivialDef()
1398 for (unsigned I = CopyMI->getDesc().getNumOperands(), in reMaterializeTrivialDef()
1399 E = CopyMI->getNumOperands(); in reMaterializeTrivialDef()
1401 MachineOperand &MO = CopyMI->getOperand(I); in reMaterializeTrivialDef()
1410 LIS->ReplaceMachineInstrInMaps(*CopyMI, NewMI); in reMaterializeTrivialDef()
1411 CopyMI->eraseFromParent(); in reMaterializeTrivialDef()
1412 ErasedInstrs.insert(CopyMI); in reMaterializeTrivialDef()
1612 MachineInstr *RegisterCoalescer::eliminateUndefCopy(MachineInstr *CopyMI) { in eliminateUndefCopy() argument
1626 if(!isMoveInstr(*TRI, CopyMI, SrcReg, DstReg, SrcSubIdx, DstSubIdx)) in eliminateUndefCopy()
1629 SlotIndex Idx = LIS->getInstructionIndex(*CopyMI); in eliminateUndefCopy()
1651 CopyMI->setDesc(TII->get(TargetOpcode::IMPLICIT_DEF)); in eliminateUndefCopy()
1652 for (unsigned i = CopyMI->getNumOperands(); i != 0; --i) { in eliminateUndefCopy()
1653 MachineOperand &MO = CopyMI->getOperand(i-1); in eliminateUndefCopy()
1655 CopyMI->RemoveOperand(i-1); in eliminateUndefCopy()
1659 return CopyMI; in eliminateUndefCopy()
1716 for (MachineOperand &MO : CopyMI->operands()) in eliminateUndefCopy()
1721 return CopyMI; in eliminateUndefCopy()
1902 bool RegisterCoalescer::joinCopy(MachineInstr *CopyMI, bool &Again) { in joinCopy() argument
1904 LLVM_DEBUG(dbgs() << LIS->getInstructionIndex(*CopyMI) << '\t' << *CopyMI); in joinCopy()
1907 if (!CP.setRegisters(CopyMI)) { in joinCopy()
1921 if (!TRI->shouldCoalesce(CopyMI, SrcRC, SrcIdx, DstRC, DstIdx, in joinCopy()
1931 if (!CP.isPhys() && CopyMI->allDefsAreDead()) { in joinCopy()
1933 DeadDefs.push_back(CopyMI); in joinCopy()
1941 if (MachineInstr *UndefMI = eliminateUndefCopy(CopyMI)) { in joinCopy()
1944 deleteInstr(CopyMI); in joinCopy()
1955 const SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI); in joinCopy()
1964 MachineBasicBlock *MBB = CopyMI->getParent(); in joinCopy()
1992 deleteInstr(CopyMI); in joinCopy()
2005 if (reMaterializeTrivialDef(CP, CopyMI, IsDefCopy)) in joinCopy()
2044 if (reMaterializeTrivialDef(CP, CopyMI, IsDefCopy)) in joinCopy()
2050 bool Changed = adjustCopiesBackFrom(CP, CopyMI); in joinCopy()
2053 std::tie(Changed, Shrink) = removeCopyByCommutingDef(CP, CopyMI); in joinCopy()
2055 deleteInstr(CopyMI); in joinCopy()
2070 if (removePartialRedundancy(CP, *CopyMI)) in joinCopy()
2094 ErasedInstrs.erase(CopyMI); in joinCopy()
2194 MachineInstr *CopyMI; in joinReservedPhysReg() local
2203 CopyMI = MRI->getVRegDef(SrcReg); in joinReservedPhysReg()
2223 CopyMI = &*MRI->use_instr_nodbg_begin(SrcReg); in joinReservedPhysReg()
2224 SlotIndex CopyRegIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in joinReservedPhysReg()
2255 deleteInstr(CopyMI); in joinReservedPhysReg()