Lines Matching refs:Cand
2765 void GenericSchedulerBase::traceCandidate(const SchedCandidate &Cand) { in traceCandidate() argument
2769 switch (Cand.Reason) { in traceCandidate()
2773 P = Cand.RPDelta.Excess; in traceCandidate()
2776 P = Cand.RPDelta.CriticalMax; in traceCandidate()
2779 P = Cand.RPDelta.CurrentMax; in traceCandidate()
2782 ResIdx = Cand.Policy.ReduceResIdx; in traceCandidate()
2785 ResIdx = Cand.Policy.DemandResIdx; in traceCandidate()
2788 Latency = Cand.SU->getDepth(); in traceCandidate()
2791 Latency = Cand.SU->getHeight(); in traceCandidate()
2794 Latency = Cand.SU->getHeight(); in traceCandidate()
2797 Latency = Cand.SU->getDepth(); in traceCandidate()
2800 dbgs() << " Cand SU(" << Cand.SU->NodeNum << ") " << getReasonStr(Cand.Reason); in traceCandidate()
2824 GenericSchedulerBase::SchedCandidate &Cand, in tryLess() argument
2831 if (Cand.Reason > Reason) in tryLess()
2832 Cand.Reason = Reason; in tryLess()
2840 GenericSchedulerBase::SchedCandidate &Cand, in tryGreater() argument
2847 if (Cand.Reason > Reason) in tryGreater()
2848 Cand.Reason = Reason; in tryGreater()
2855 GenericSchedulerBase::SchedCandidate &Cand, in tryLatency() argument
2861 if (std::max(TryCand.SU->getDepth(), Cand.SU->getDepth()) > in tryLatency()
2863 if (tryLess(TryCand.SU->getDepth(), Cand.SU->getDepth(), in tryLatency()
2864 TryCand, Cand, GenericSchedulerBase::TopDepthReduce)) in tryLatency()
2867 if (tryGreater(TryCand.SU->getHeight(), Cand.SU->getHeight(), in tryLatency()
2868 TryCand, Cand, GenericSchedulerBase::TopPathReduce)) in tryLatency()
2874 if (std::max(TryCand.SU->getHeight(), Cand.SU->getHeight()) > in tryLatency()
2876 if (tryLess(TryCand.SU->getHeight(), Cand.SU->getHeight(), in tryLatency()
2877 TryCand, Cand, GenericSchedulerBase::BotHeightReduce)) in tryLatency()
2880 if (tryGreater(TryCand.SU->getDepth(), Cand.SU->getDepth(), in tryLatency()
2881 TryCand, Cand, GenericSchedulerBase::BotPathReduce)) in tryLatency()
2893 static void tracePick(const GenericSchedulerBase::SchedCandidate &Cand) { in tracePick() argument
2894 tracePick(Cand.Reason, Cand.AtTop); in tracePick()
3050 GenericSchedulerBase::SchedCandidate &Cand, in tryPressure() argument
3056 if (tryGreater(TryP.getUnitInc() < 0, CandP.getUnitInc() < 0, TryCand, Cand, in tryPressure()
3062 if (Cand.AtTop != TryCand.AtTop) in tryPressure()
3070 return tryLess(TryP.getUnitInc(), CandP.getUnitInc(), TryCand, Cand, in tryPressure()
3083 return tryGreater(TryRank, CandRank, TryCand, Cand, Reason); in tryPressure()
3134 void GenericScheduler::initCandidate(SchedCandidate &Cand, SUnit *SU, in initCandidate() argument
3138 Cand.SU = SU; in initCandidate()
3139 Cand.AtTop = AtTop; in initCandidate()
3143 Cand.SU->getInstr(), in initCandidate()
3144 Cand.RPDelta, in initCandidate()
3150 Cand.SU->getInstr(), in initCandidate()
3151 &DAG->getPressureDiff(Cand.SU), in initCandidate()
3152 Cand.RPDelta, in initCandidate()
3157 Cand.SU->getInstr(), in initCandidate()
3158 DAG->getPressureDiff(Cand.SU), in initCandidate()
3159 Cand.RPDelta, in initCandidate()
3165 LLVM_DEBUG(if (Cand.RPDelta.Excess.isValid()) dbgs() in initCandidate()
3166 << " Try SU(" << Cand.SU->NodeNum << ") " in initCandidate()
3167 << TRI->getRegPressureSetName(Cand.RPDelta.Excess.getPSet()) << ":" in initCandidate()
3168 << Cand.RPDelta.Excess.getUnitInc() << "\n"); in initCandidate()
3182 bool GenericScheduler::tryCandidate(SchedCandidate &Cand, in tryCandidate() argument
3186 if (!Cand.isValid()) { in tryCandidate()
3193 biasPhysReg(Cand.SU, Cand.AtTop), TryCand, Cand, PhysReg)) in tryCandidate()
3198 Cand.RPDelta.Excess, in tryCandidate()
3199 TryCand, Cand, RegExcess, TRI, in tryCandidate()
3205 Cand.RPDelta.CriticalMax, in tryCandidate()
3206 TryCand, Cand, RegCritical, TRI, in tryCandidate()
3221 tryLatency(TryCand, Cand, *Zone)) in tryCandidate()
3226 Zone->getLatencyStallCycles(Cand.SU), TryCand, Cand, Stall)) in tryCandidate()
3237 Cand.AtTop ? DAG->getNextClusterSucc() : DAG->getNextClusterPred(); in tryCandidate()
3241 Cand.SU == CandNextClusterSU, in tryCandidate()
3242 TryCand, Cand, Cluster)) in tryCandidate()
3248 getWeakLeft(Cand.SU, Cand.AtTop), in tryCandidate()
3249 TryCand, Cand, Weak)) in tryCandidate()
3255 Cand.RPDelta.CurrentMax, in tryCandidate()
3256 TryCand, Cand, RegMax, TRI, in tryCandidate()
3263 if (tryLess(TryCand.ResDelta.CritResources, Cand.ResDelta.CritResources, in tryCandidate()
3264 TryCand, Cand, ResourceReduce)) in tryCandidate()
3267 Cand.ResDelta.DemandedResources, in tryCandidate()
3268 TryCand, Cand, ResourceDemand)) in tryCandidate()
3274 !Rem.IsAcyclicLatencyLimited && tryLatency(TryCand, Cand, *Zone)) in tryCandidate()
3278 if ((Zone->isTop() && TryCand.SU->NodeNum < Cand.SU->NodeNum) in tryCandidate()
3279 || (!Zone->isTop() && TryCand.SU->NodeNum > Cand.SU->NodeNum)) { in tryCandidate()
3296 SchedCandidate &Cand) { in pickNodeFromQueue() argument
3306 SchedBoundary *ZoneArg = Cand.AtTop == TryCand.AtTop ? &Zone : nullptr; in pickNodeFromQueue()
3307 if (tryCandidate(Cand, TryCand, ZoneArg)) { in pickNodeFromQueue()
3311 Cand.setBest(TryCand); in pickNodeFromQueue()
3312 LLVM_DEBUG(traceCandidate(Cand)); in pickNodeFromQueue()
3383 SchedCandidate Cand = BotCand; in pickNodeBidirectional() local
3385 if (tryCandidate(Cand, TopCand, nullptr)) { in pickNodeBidirectional()
3386 Cand.setBest(TopCand); in pickNodeBidirectional()
3387 LLVM_DEBUG(traceCandidate(Cand)); in pickNodeBidirectional()
3390 IsTopNode = Cand.AtTop; in pickNodeBidirectional()
3391 tracePick(Cand); in pickNodeBidirectional()
3392 return Cand.SU; in pickNodeBidirectional()
3550 bool PostGenericScheduler::tryCandidate(SchedCandidate &Cand, in tryCandidate() argument
3553 if (!Cand.isValid()) { in tryCandidate()
3560 Top.getLatencyStallCycles(Cand.SU), TryCand, Cand, Stall)) in tryCandidate()
3565 Cand.SU == DAG->getNextClusterSucc(), in tryCandidate()
3566 TryCand, Cand, Cluster)) in tryCandidate()
3570 if (tryLess(TryCand.ResDelta.CritResources, Cand.ResDelta.CritResources, in tryCandidate()
3571 TryCand, Cand, ResourceReduce)) in tryCandidate()
3574 Cand.ResDelta.DemandedResources, in tryCandidate()
3575 TryCand, Cand, ResourceDemand)) in tryCandidate()
3579 if (Cand.Policy.ReduceLatency && tryLatency(TryCand, Cand, Top)) { in tryCandidate()
3584 if (TryCand.SU->NodeNum < Cand.SU->NodeNum) { in tryCandidate()
3592 void PostGenericScheduler::pickNodeFromQueue(SchedCandidate &Cand) { in pickNodeFromQueue() argument
3595 SchedCandidate TryCand(Cand.Policy); in pickNodeFromQueue()
3599 if (tryCandidate(Cand, TryCand)) { in pickNodeFromQueue()
3600 Cand.setBest(TryCand); in pickNodeFromQueue()
3601 LLVM_DEBUG(traceCandidate(Cand)); in pickNodeFromQueue()