Lines Matching refs:UseMI
544 // Get the input data dependencies that must be ready before UseMI can issue.
545 // Return true if UseMI has any physreg operands.
546 static bool getDataDeps(const MachineInstr *UseMI,
550 for (ConstMIOperands MO(UseMI); MO.isValid(); ++MO) {
570 static void getPHIDeps(const MachineInstr *UseMI,
577 assert(UseMI->isPHI() && UseMI->getNumOperands() % 2 && "Bad PHI");
578 for (unsigned i = 1; i != UseMI->getNumOperands(); i += 2) {
579 if (UseMI->getOperand(i + 1).getMBB() == Pred) {
580 unsigned Reg = UseMI->getOperand(i).getReg();
604 // Identify physreg dependencies for UseMI, and update the live regunit
606 static void updatePhysDepsDownwards(const MachineInstr *UseMI,
613 for (ConstMIOperands MO(UseMI); MO.isValid(); ++MO) {
639 // Update RegUnits to reflect live registers after UseMI.
648 for (MCRegUnitIterator Units(UseMI->getOperand(DefOp).getReg(), TRI);
651 LRU.MI = UseMI;
727 const MachineInstr *UseMI = I;
731 if (UseMI->isPHI())
732 getPHIDeps(UseMI, Deps, TBI.Pred, MTM.MRI);
733 else if (getDataDeps(UseMI, Deps, MTM.MRI))
734 updatePhysDepsDownwards(UseMI, Deps, RegUnits, MTM.TRI);
750 .computeOperandLatency(Dep.DefMI, Dep.DefOp, UseMI, Dep.UseOp,
755 InstrCycles &MICycles = Cycles[UseMI];
759 DEBUG(dbgs() << Cycle << '\t' << *UseMI);
764 DEBUG(dbgs() << TBI.CriticalPath << '\t' << Cycle << '\t' << *UseMI);
796 // We may not know the UseMI of this dependency, if it came from the
797 // live-in list. SchedModel can handle a NULL UseMI.
828 // Push the height of DefMI upwards if required to match UseMI.
831 const MachineInstr *UseMI, unsigned UseHeight,
838 UseMI, Dep.UseOp, false);