Lines Matching refs:CopyMI
130 bool AdjustCopiesBackFrom(const CoalescerPair &CP, MachineInstr *CopyMI);
141 bool RemoveCopyByCommutingDef(const CoalescerPair &CP,MachineInstr *CopyMI);
147 unsigned DstReg, MachineInstr *CopyMI);
174 void RemoveCopyFlag(unsigned DstReg, const MachineInstr *CopyMI);
177 void markAsJoined(MachineInstr *CopyMI);
180 bool eliminateUndefCopy(MachineInstr *CopyMI, const CoalescerPair &CP);
388 void RegisterCoalescer::markAsJoined(MachineInstr *CopyMI) { in markAsJoined() argument
390 JoinedCopies.insert(CopyMI); in markAsJoined()
394 for (MachineInstr::mop_iterator I = CopyMI->operands_begin(), in markAsJoined()
395 E = CopyMI->operands_end(); I != E; ++I) in markAsJoined()
416 MachineInstr *CopyMI) { in AdjustCopiesBackFrom() argument
426 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getDefIndex(); in AdjustCopiesBackFrom()
483 if (!ValLREndInst || ValLREndInst->getParent() != CopyMI->getParent()) in AdjustCopiesBackFrom()
616 MachineInstr *CopyMI) { in RemoveCopyByCommutingDef() argument
628 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getDefIndex(); in RemoveCopyByCommutingDef()
758 if (UseMI == CopyMI) in RemoveCopyByCommutingDef()
801 MachineInstr *CopyMI) { in ReMaterializeTrivialDef() argument
802 SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getUseIndex(); in ReMaterializeTrivialDef()
834 RemoveCopyFlag(DstReg, CopyMI); in ReMaterializeTrivialDef()
836 MachineBasicBlock *MBB = CopyMI->getParent(); in ReMaterializeTrivialDef()
838 llvm::next(MachineBasicBlock::iterator(CopyMI)); in ReMaterializeTrivialDef()
844 for (unsigned i = CopyMI->getDesc().getNumOperands(), in ReMaterializeTrivialDef()
845 e = CopyMI->getNumOperands(); i != e; ++i) { in ReMaterializeTrivialDef()
846 MachineOperand &MO = CopyMI->getOperand(i); in ReMaterializeTrivialDef()
850 RemoveCopyFlag(MO.getReg(), CopyMI); in ReMaterializeTrivialDef()
853 NewMI->copyImplicitOps(CopyMI); in ReMaterializeTrivialDef()
854 LIS->ReplaceMachineInstrInMaps(CopyMI, NewMI); in ReMaterializeTrivialDef()
855 CopyMI->eraseFromParent(); in ReMaterializeTrivialDef()
856 ReMatCopies.insert(CopyMI); in ReMaterializeTrivialDef()
875 bool RegisterCoalescer::eliminateUndefCopy(MachineInstr *CopyMI, in eliminateUndefCopy() argument
877 SlotIndex Idx = LIS->getInstructionIndex(CopyMI); in eliminateUndefCopy()
1025 const MachineInstr *CopyMI) { in RemoveCopyFlag() argument
1026 SlotIndex DefIdx = LIS->getInstructionIndex(CopyMI).getDefIndex(); in RemoveCopyFlag()
1154 bool RegisterCoalescer::JoinCopy(MachineInstr *CopyMI, bool &Again) { in JoinCopy() argument
1157 if (JoinedCopies.count(CopyMI) || ReMatCopies.count(CopyMI)) in JoinCopy()
1160 DEBUG(dbgs() << LIS->getInstructionIndex(CopyMI) << '\t' << *CopyMI); in JoinCopy()
1163 if (!CP.setRegisters(CopyMI)) { in JoinCopy()
1170 markAsJoined(CopyMI); in JoinCopy()
1176 if (!CP.isPhys() && eliminateUndefCopy(CopyMI, CP)) { in JoinCopy()
1177 markAsJoined(CopyMI); in JoinCopy()
1193 CP.getDstReg(), CopyMI)) in JoinCopy()
1232 CP.getDstReg(), CopyMI)) in JoinCopy()
1237 if (AdjustCopiesBackFrom(CP, CopyMI) || in JoinCopy()
1238 RemoveCopyByCommutingDef(CP, CopyMI)) { in JoinCopy()
1239 markAsJoined(CopyMI); in JoinCopy()
1259 markAsJoined(CopyMI); in JoinCopy()