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()
957 if (UseMI == CopyMI) in removeCopyByCommutingDef()
1099 MachineInstr &CopyMI) { in removePartialRedundancy() argument
1101 if (!CopyMI.isFullCopy()) in removePartialRedundancy()
1104 MachineBasicBlock &MBB = *CopyMI.getParent(); in removePartialRedundancy()
1119 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getRegSlot(true); in removePartialRedundancy()
1195 << printMBBReference(*CopyLeftBB) << '\t' << CopyMI); in removePartialRedundancy()
1198 MachineInstr *NewCopyMI = BuildMI(*CopyLeftBB, InsPos, CopyMI.getDebugLoc(), in removePartialRedundancy()
1213 << printMBBReference(MBB) << '\t' << CopyMI); in removePartialRedundancy()
1221 deleteInstr(&CopyMI); in removePartialRedundancy()
1283 MachineInstr *CopyMI, in reMaterializeTrivialDef() argument
1294 SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI); in reMaterializeTrivialDef()
1320 MachineOperand &DstOperand = CopyMI->getOperand(0); in reMaterializeTrivialDef()
1358 DebugLoc DL = CopyMI->getDebugLoc(); in reMaterializeTrivialDef()
1359 MachineBasicBlock *MBB = CopyMI->getParent(); in reMaterializeTrivialDef()
1361 std::next(MachineBasicBlock::iterator(CopyMI)); in reMaterializeTrivialDef()
1392 ImplicitOps.reserve(CopyMI->getNumOperands() - in reMaterializeTrivialDef()
1393 CopyMI->getDesc().getNumOperands()); in reMaterializeTrivialDef()
1394 for (unsigned I = CopyMI->getDesc().getNumOperands(), in reMaterializeTrivialDef()
1395 E = CopyMI->getNumOperands(); in reMaterializeTrivialDef()
1397 MachineOperand &MO = CopyMI->getOperand(I); in reMaterializeTrivialDef()
1406 LIS->ReplaceMachineInstrInMaps(*CopyMI, NewMI); in reMaterializeTrivialDef()
1407 CopyMI->eraseFromParent(); in reMaterializeTrivialDef()
1408 ErasedInstrs.insert(CopyMI); in reMaterializeTrivialDef()
1607 MachineInstr *RegisterCoalescer::eliminateUndefCopy(MachineInstr *CopyMI) { in eliminateUndefCopy() argument
1621 if(!isMoveInstr(*TRI, CopyMI, SrcReg, DstReg, SrcSubIdx, DstSubIdx)) in eliminateUndefCopy()
1624 SlotIndex Idx = LIS->getInstructionIndex(*CopyMI); in eliminateUndefCopy()
1646 CopyMI->setDesc(TII->get(TargetOpcode::IMPLICIT_DEF)); in eliminateUndefCopy()
1647 for (unsigned i = CopyMI->getNumOperands(); i != 0; --i) { in eliminateUndefCopy()
1648 MachineOperand &MO = CopyMI->getOperand(i-1); in eliminateUndefCopy()
1650 CopyMI->removeOperand(i-1); in eliminateUndefCopy()
1654 return CopyMI; in eliminateUndefCopy()
1711 for (MachineOperand &MO : CopyMI->operands()) in eliminateUndefCopy()
1716 return CopyMI; in eliminateUndefCopy()
1897 bool RegisterCoalescer::joinCopy(MachineInstr *CopyMI, bool &Again) { in joinCopy() argument
1899 LLVM_DEBUG(dbgs() << LIS->getInstructionIndex(*CopyMI) << '\t' << *CopyMI); in joinCopy()
1902 if (!CP.setRegisters(CopyMI)) { in joinCopy()
1916 if (!TRI->shouldCoalesce(CopyMI, SrcRC, SrcIdx, DstRC, DstIdx, in joinCopy()
1926 if (!CP.isPhys() && CopyMI->allDefsAreDead()) { in joinCopy()
1928 DeadDefs.push_back(CopyMI); in joinCopy()
1936 if (MachineInstr *UndefMI = eliminateUndefCopy(CopyMI)) { in joinCopy()
1939 deleteInstr(CopyMI); in joinCopy()
1950 const SlotIndex CopyIdx = LIS->getInstructionIndex(*CopyMI); in joinCopy()
1959 MachineBasicBlock *MBB = CopyMI->getParent(); in joinCopy()
1987 deleteInstr(CopyMI); in joinCopy()
2000 if (reMaterializeTrivialDef(CP, CopyMI, IsDefCopy)) in joinCopy()
2039 if (reMaterializeTrivialDef(CP, CopyMI, IsDefCopy)) in joinCopy()
2045 bool Changed = adjustCopiesBackFrom(CP, CopyMI); in joinCopy()
2048 std::tie(Changed, Shrink) = removeCopyByCommutingDef(CP, CopyMI); in joinCopy()
2050 deleteInstr(CopyMI); in joinCopy()
2065 if (removePartialRedundancy(CP, *CopyMI)) in joinCopy()
2089 ErasedInstrs.erase(CopyMI); in joinCopy()
2189 MachineInstr *CopyMI; in joinReservedPhysReg() local
2198 CopyMI = MRI->getVRegDef(SrcReg); in joinReservedPhysReg()
2218 CopyMI = &*MRI->use_instr_nodbg_begin(SrcReg); in joinReservedPhysReg()
2219 SlotIndex CopyRegIdx = LIS->getInstructionIndex(*CopyMI).getRegSlot(); in joinReservedPhysReg()
2250 deleteInstr(CopyMI); in joinReservedPhysReg()