Lines Matching refs:UseMI
651 static bool getDataDeps(const MachineInstr &UseMI, in getDataDeps() argument
655 if (UseMI.isDebugInstr()) in getDataDeps()
659 for (MachineInstr::const_mop_iterator I = UseMI.operands_begin(), in getDataDeps()
660 E = UseMI.operands_end(); I != E; ++I) { in getDataDeps()
673 Deps.push_back(DataDep(MRI, Reg, UseMI.getOperandNo(I))); in getDataDeps()
681 static void getPHIDeps(const MachineInstr &UseMI, in getPHIDeps() argument
688 assert(UseMI.isPHI() && UseMI.getNumOperands() % 2 && "Bad PHI"); in getPHIDeps()
689 for (unsigned i = 1; i != UseMI.getNumOperands(); i += 2) { in getPHIDeps()
690 if (UseMI.getOperand(i + 1).getMBB() == Pred) { in getPHIDeps()
691 Register Reg = UseMI.getOperand(i).getReg(); in getPHIDeps()
700 static void updatePhysDepsDownwards(const MachineInstr *UseMI, in updatePhysDepsDownwards() argument
707 for (MachineInstr::const_mop_iterator MI = UseMI->operands_begin(), in updatePhysDepsDownwards()
708 ME = UseMI->operands_end(); MI != ME; ++MI) { in updatePhysDepsDownwards()
718 LiveDefOps.push_back(UseMI->getOperandNo(MI)); in updatePhysDepsDownwards()
728 Deps.push_back(DataDep(I->MI, I->Op, UseMI->getOperandNo(MI))); in updatePhysDepsDownwards()
741 for (MCRegUnitIterator Units(UseMI->getOperand(DefOp).getReg().asMCReg(), in updatePhysDepsDownwards()
745 LRU.MI = UseMI; in updatePhysDepsDownwards()
782 updateDepth(MachineTraceMetrics::TraceBlockInfo &TBI, const MachineInstr &UseMI, in updateDepth() argument
786 if (UseMI.isPHI()) in updateDepth()
787 getPHIDeps(UseMI, Deps, TBI.Pred, MTM.MRI); in updateDepth()
788 else if (getDataDeps(UseMI, Deps, MTM.MRI)) in updateDepth()
789 updatePhysDepsDownwards(&UseMI, Deps, RegUnits, MTM.TRI); in updateDepth()
804 .computeOperandLatency(Dep.DefMI, Dep.DefOp, &UseMI, Dep.UseOp); in updateDepth()
808 InstrCycles &MICycles = Cycles[&UseMI]; in updateDepth()
814 LLVM_DEBUG(dbgs() << TBI.CriticalPath << '\t' << Cycle << '\t' << UseMI); in updateDepth()
816 LLVM_DEBUG(dbgs() << Cycle << '\t' << UseMI); in updateDepth()
821 updateDepth(const MachineBasicBlock *MBB, const MachineInstr &UseMI, in updateDepth() argument
823 updateDepth(BlockInfo[MBB->getNumber()], UseMI, RegUnits); in updateDepth()
883 for (const auto &UseMI : *MBB) { in computeInstrDepths()
884 updateDepth(TBI, UseMI, RegUnits); in computeInstrDepths()
953 static bool pushDepHeight(const DataDep &Dep, const MachineInstr &UseMI, in pushDepHeight() argument
959 UseHeight += SchedModel.computeOperandLatency(Dep.DefMI, Dep.DefOp, &UseMI, in pushDepHeight()
1278 const MachineInstr &UseMI) const { in isDepInTrace()
1279 if (DefMI.getParent() == UseMI.getParent()) in isDepInTrace()
1283 const TraceBlockInfo &TBI = TE.BlockInfo[UseMI.getParent()->getNumber()]; in isDepInTrace()