Lines Matching refs:Cand

3116 void GenericSchedulerBase::traceCandidate(const SchedCandidate &Cand) {  in traceCandidate()  argument
3120 switch (Cand.Reason) { in traceCandidate()
3124 P = Cand.RPDelta.Excess; in traceCandidate()
3127 P = Cand.RPDelta.CriticalMax; in traceCandidate()
3130 P = Cand.RPDelta.CurrentMax; in traceCandidate()
3133 ResIdx = Cand.Policy.ReduceResIdx; in traceCandidate()
3136 ResIdx = Cand.Policy.DemandResIdx; in traceCandidate()
3139 Latency = Cand.SU->getDepth(); in traceCandidate()
3142 Latency = Cand.SU->getHeight(); in traceCandidate()
3145 Latency = Cand.SU->getHeight(); in traceCandidate()
3148 Latency = Cand.SU->getDepth(); in traceCandidate()
3151 dbgs() << " Cand SU(" << Cand.SU->NodeNum << ") " << getReasonStr(Cand.Reason); in traceCandidate()
3175 GenericSchedulerBase::SchedCandidate &Cand, in tryLess() argument
3182 if (Cand.Reason > Reason) in tryLess()
3183 Cand.Reason = Reason; in tryLess()
3191 GenericSchedulerBase::SchedCandidate &Cand, in tryGreater() argument
3198 if (Cand.Reason > Reason) in tryGreater()
3199 Cand.Reason = Reason; in tryGreater()
3206 GenericSchedulerBase::SchedCandidate &Cand, in tryLatency() argument
3212 if (std::max(TryCand.SU->getDepth(), Cand.SU->getDepth()) > in tryLatency()
3214 if (tryLess(TryCand.SU->getDepth(), Cand.SU->getDepth(), in tryLatency()
3215 TryCand, Cand, GenericSchedulerBase::TopDepthReduce)) in tryLatency()
3218 if (tryGreater(TryCand.SU->getHeight(), Cand.SU->getHeight(), in tryLatency()
3219 TryCand, Cand, GenericSchedulerBase::TopPathReduce)) in tryLatency()
3225 if (std::max(TryCand.SU->getHeight(), Cand.SU->getHeight()) > in tryLatency()
3227 if (tryLess(TryCand.SU->getHeight(), Cand.SU->getHeight(), in tryLatency()
3228 TryCand, Cand, GenericSchedulerBase::BotHeightReduce)) in tryLatency()
3231 if (tryGreater(TryCand.SU->getDepth(), Cand.SU->getDepth(), in tryLatency()
3232 TryCand, Cand, GenericSchedulerBase::BotPathReduce)) in tryLatency()
3244 static void tracePick(const GenericSchedulerBase::SchedCandidate &Cand) { in tracePick() argument
3245 tracePick(Cand.Reason, Cand.AtTop); in tracePick()
3399 GenericSchedulerBase::SchedCandidate &Cand, in tryPressure() argument
3405 if (tryGreater(TryP.getUnitInc() < 0, CandP.getUnitInc() < 0, TryCand, Cand, in tryPressure()
3411 if (Cand.AtTop != TryCand.AtTop) in tryPressure()
3419 return tryLess(TryP.getUnitInc(), CandP.getUnitInc(), TryCand, Cand, in tryPressure()
3432 return tryGreater(TryRank, CandRank, TryCand, Cand, Reason); in tryPressure()
3483 void GenericScheduler::initCandidate(SchedCandidate &Cand, SUnit *SU, in initCandidate() argument
3487 Cand.SU = SU; in initCandidate()
3488 Cand.AtTop = AtTop; in initCandidate()
3492 Cand.SU->getInstr(), in initCandidate()
3493 Cand.RPDelta, in initCandidate()
3499 Cand.SU->getInstr(), in initCandidate()
3500 &DAG->getPressureDiff(Cand.SU), in initCandidate()
3501 Cand.RPDelta, in initCandidate()
3506 Cand.SU->getInstr(), in initCandidate()
3507 DAG->getPressureDiff(Cand.SU), in initCandidate()
3508 Cand.RPDelta, in initCandidate()
3514 LLVM_DEBUG(if (Cand.RPDelta.Excess.isValid()) dbgs() in initCandidate()
3515 << " Try SU(" << Cand.SU->NodeNum << ") " in initCandidate()
3516 << TRI->getRegPressureSetName(Cand.RPDelta.Excess.getPSet()) << ":" in initCandidate()
3517 << Cand.RPDelta.Excess.getUnitInc() << "\n"); in initCandidate()
3531 bool GenericScheduler::tryCandidate(SchedCandidate &Cand, in tryCandidate() argument
3535 if (!Cand.isValid()) { in tryCandidate()
3542 biasPhysReg(Cand.SU, Cand.AtTop), TryCand, Cand, PhysReg)) in tryCandidate()
3547 Cand.RPDelta.Excess, in tryCandidate()
3548 TryCand, Cand, RegExcess, TRI, in tryCandidate()
3554 Cand.RPDelta.CriticalMax, in tryCandidate()
3555 TryCand, Cand, RegCritical, TRI, in tryCandidate()
3570 tryLatency(TryCand, Cand, *Zone)) in tryCandidate()
3575 Zone->getLatencyStallCycles(Cand.SU), TryCand, Cand, Stall)) in tryCandidate()
3586 Cand.AtTop ? DAG->getNextClusterSucc() : DAG->getNextClusterPred(); in tryCandidate()
3590 Cand.SU == CandNextClusterSU, in tryCandidate()
3591 TryCand, Cand, Cluster)) in tryCandidate()
3597 getWeakLeft(Cand.SU, Cand.AtTop), in tryCandidate()
3598 TryCand, Cand, Weak)) in tryCandidate()
3604 Cand.RPDelta.CurrentMax, in tryCandidate()
3605 TryCand, Cand, RegMax, TRI, in tryCandidate()
3612 if (tryLess(TryCand.ResDelta.CritResources, Cand.ResDelta.CritResources, in tryCandidate()
3613 TryCand, Cand, ResourceReduce)) in tryCandidate()
3616 Cand.ResDelta.DemandedResources, in tryCandidate()
3617 TryCand, Cand, ResourceDemand)) in tryCandidate()
3623 !Rem.IsAcyclicLatencyLimited && tryLatency(TryCand, Cand, *Zone)) in tryCandidate()
3627 if ((Zone->isTop() && TryCand.SU->NodeNum < Cand.SU->NodeNum) in tryCandidate()
3628 || (!Zone->isTop() && TryCand.SU->NodeNum > Cand.SU->NodeNum)) { in tryCandidate()
3645 SchedCandidate &Cand) { in pickNodeFromQueue() argument
3655 SchedBoundary *ZoneArg = Cand.AtTop == TryCand.AtTop ? &Zone : nullptr; in pickNodeFromQueue()
3656 if (tryCandidate(Cand, TryCand, ZoneArg)) { in pickNodeFromQueue()
3660 Cand.setBest(TryCand); in pickNodeFromQueue()
3661 LLVM_DEBUG(traceCandidate(Cand)); in pickNodeFromQueue()
3732 SchedCandidate Cand = BotCand; in pickNodeBidirectional() local
3734 if (tryCandidate(Cand, TopCand, nullptr)) { in pickNodeBidirectional()
3735 Cand.setBest(TopCand); in pickNodeBidirectional()
3736 LLVM_DEBUG(traceCandidate(Cand)); in pickNodeBidirectional()
3739 IsTopNode = Cand.AtTop; in pickNodeBidirectional()
3740 tracePick(Cand); in pickNodeBidirectional()
3741 return Cand.SU; in pickNodeBidirectional()
3936 bool PostGenericScheduler::tryCandidate(SchedCandidate &Cand, in tryCandidate() argument
3939 if (!Cand.isValid()) { in tryCandidate()
3946 Top.getLatencyStallCycles(Cand.SU), TryCand, Cand, Stall)) in tryCandidate()
3951 Cand.SU == DAG->getNextClusterSucc(), in tryCandidate()
3952 TryCand, Cand, Cluster)) in tryCandidate()
3956 if (tryLess(TryCand.ResDelta.CritResources, Cand.ResDelta.CritResources, in tryCandidate()
3957 TryCand, Cand, ResourceReduce)) in tryCandidate()
3960 Cand.ResDelta.DemandedResources, in tryCandidate()
3961 TryCand, Cand, ResourceDemand)) in tryCandidate()
3965 if (Cand.Policy.ReduceLatency && tryLatency(TryCand, Cand, Top)) { in tryCandidate()
3970 if (TryCand.SU->NodeNum < Cand.SU->NodeNum) { in tryCandidate()
3979 SchedCandidate &Cand) { in pickNodeFromQueue() argument
3982 SchedCandidate TryCand(Cand.Policy); in pickNodeFromQueue()
3986 if (tryCandidate(Cand, TryCand)) { in pickNodeFromQueue()
3987 Cand.setBest(TryCand); in pickNodeFromQueue()
3988 LLVM_DEBUG(traceCandidate(Cand)); in pickNodeFromQueue()
4062 SchedCandidate Cand = BotCand; in pickNodeBidirectional() local
4064 if (tryCandidate(Cand, TopCand)) { in pickNodeBidirectional()
4065 Cand.setBest(TopCand); in pickNodeBidirectional()
4066 LLVM_DEBUG(traceCandidate(Cand)); in pickNodeBidirectional()
4069 IsTopNode = Cand.AtTop; in pickNodeBidirectional()
4070 tracePick(Cand); in pickNodeBidirectional()
4071 return Cand.SU; in pickNodeBidirectional()