Lines Matching refs:Cand
3075 void GenericSchedulerBase::traceCandidate(const SchedCandidate &Cand) { in traceCandidate() argument
3079 switch (Cand.Reason) { in traceCandidate()
3083 P = Cand.RPDelta.Excess; in traceCandidate()
3086 P = Cand.RPDelta.CriticalMax; in traceCandidate()
3089 P = Cand.RPDelta.CurrentMax; in traceCandidate()
3092 ResIdx = Cand.Policy.ReduceResIdx; in traceCandidate()
3095 ResIdx = Cand.Policy.DemandResIdx; in traceCandidate()
3098 Latency = Cand.SU->getDepth(); in traceCandidate()
3101 Latency = Cand.SU->getHeight(); in traceCandidate()
3104 Latency = Cand.SU->getHeight(); in traceCandidate()
3107 Latency = Cand.SU->getDepth(); in traceCandidate()
3110 dbgs() << " Cand SU(" << Cand.SU->NodeNum << ") " << getReasonStr(Cand.Reason); in traceCandidate()
3134 GenericSchedulerBase::SchedCandidate &Cand, in tryLess() argument
3141 if (Cand.Reason > Reason) in tryLess()
3142 Cand.Reason = Reason; in tryLess()
3150 GenericSchedulerBase::SchedCandidate &Cand, in tryGreater() argument
3157 if (Cand.Reason > Reason) in tryGreater()
3158 Cand.Reason = Reason; in tryGreater()
3165 GenericSchedulerBase::SchedCandidate &Cand, in tryLatency() argument
3171 if (std::max(TryCand.SU->getDepth(), Cand.SU->getDepth()) > in tryLatency()
3173 if (tryLess(TryCand.SU->getDepth(), Cand.SU->getDepth(), in tryLatency()
3174 TryCand, Cand, GenericSchedulerBase::TopDepthReduce)) in tryLatency()
3177 if (tryGreater(TryCand.SU->getHeight(), Cand.SU->getHeight(), in tryLatency()
3178 TryCand, Cand, GenericSchedulerBase::TopPathReduce)) in tryLatency()
3184 if (std::max(TryCand.SU->getHeight(), Cand.SU->getHeight()) > in tryLatency()
3186 if (tryLess(TryCand.SU->getHeight(), Cand.SU->getHeight(), in tryLatency()
3187 TryCand, Cand, GenericSchedulerBase::BotHeightReduce)) in tryLatency()
3190 if (tryGreater(TryCand.SU->getDepth(), Cand.SU->getDepth(), in tryLatency()
3191 TryCand, Cand, GenericSchedulerBase::BotPathReduce)) in tryLatency()
3203 static void tracePick(const GenericSchedulerBase::SchedCandidate &Cand) { in tracePick() argument
3204 tracePick(Cand.Reason, Cand.AtTop); in tracePick()
3360 GenericSchedulerBase::SchedCandidate &Cand, in tryPressure() argument
3366 if (tryGreater(TryP.getUnitInc() < 0, CandP.getUnitInc() < 0, TryCand, Cand, in tryPressure()
3372 if (Cand.AtTop != TryCand.AtTop) in tryPressure()
3380 return tryLess(TryP.getUnitInc(), CandP.getUnitInc(), TryCand, Cand, in tryPressure()
3393 return tryGreater(TryRank, CandRank, TryCand, Cand, Reason); in tryPressure()
3444 void GenericScheduler::initCandidate(SchedCandidate &Cand, SUnit *SU, in initCandidate() argument
3448 Cand.SU = SU; in initCandidate()
3449 Cand.AtTop = AtTop; in initCandidate()
3453 Cand.SU->getInstr(), in initCandidate()
3454 Cand.RPDelta, in initCandidate()
3460 Cand.SU->getInstr(), in initCandidate()
3461 &DAG->getPressureDiff(Cand.SU), in initCandidate()
3462 Cand.RPDelta, in initCandidate()
3467 Cand.SU->getInstr(), in initCandidate()
3468 DAG->getPressureDiff(Cand.SU), in initCandidate()
3469 Cand.RPDelta, in initCandidate()
3475 LLVM_DEBUG(if (Cand.RPDelta.Excess.isValid()) dbgs() in initCandidate()
3476 << " Try SU(" << Cand.SU->NodeNum << ") " in initCandidate()
3477 << TRI->getRegPressureSetName(Cand.RPDelta.Excess.getPSet()) << ":" in initCandidate()
3478 << Cand.RPDelta.Excess.getUnitInc() << "\n"); in initCandidate()
3492 bool GenericScheduler::tryCandidate(SchedCandidate &Cand, in tryCandidate() argument
3496 if (!Cand.isValid()) { in tryCandidate()
3503 biasPhysReg(Cand.SU, Cand.AtTop), TryCand, Cand, PhysReg)) in tryCandidate()
3508 Cand.RPDelta.Excess, in tryCandidate()
3509 TryCand, Cand, RegExcess, TRI, in tryCandidate()
3515 Cand.RPDelta.CriticalMax, in tryCandidate()
3516 TryCand, Cand, RegCritical, TRI, in tryCandidate()
3531 tryLatency(TryCand, Cand, *Zone)) in tryCandidate()
3536 Zone->getLatencyStallCycles(Cand.SU), TryCand, Cand, Stall)) in tryCandidate()
3547 Cand.AtTop ? DAG->getNextClusterSucc() : DAG->getNextClusterPred(); in tryCandidate()
3551 Cand.SU == CandNextClusterSU, in tryCandidate()
3552 TryCand, Cand, Cluster)) in tryCandidate()
3558 getWeakLeft(Cand.SU, Cand.AtTop), in tryCandidate()
3559 TryCand, Cand, Weak)) in tryCandidate()
3565 Cand.RPDelta.CurrentMax, in tryCandidate()
3566 TryCand, Cand, RegMax, TRI, in tryCandidate()
3573 if (tryLess(TryCand.ResDelta.CritResources, Cand.ResDelta.CritResources, in tryCandidate()
3574 TryCand, Cand, ResourceReduce)) in tryCandidate()
3577 Cand.ResDelta.DemandedResources, in tryCandidate()
3578 TryCand, Cand, ResourceDemand)) in tryCandidate()
3584 !Rem.IsAcyclicLatencyLimited && tryLatency(TryCand, Cand, *Zone)) in tryCandidate()
3588 if ((Zone->isTop() && TryCand.SU->NodeNum < Cand.SU->NodeNum) in tryCandidate()
3589 || (!Zone->isTop() && TryCand.SU->NodeNum > Cand.SU->NodeNum)) { in tryCandidate()
3606 SchedCandidate &Cand) { in pickNodeFromQueue() argument
3616 SchedBoundary *ZoneArg = Cand.AtTop == TryCand.AtTop ? &Zone : nullptr; in pickNodeFromQueue()
3617 if (tryCandidate(Cand, TryCand, ZoneArg)) { in pickNodeFromQueue()
3621 Cand.setBest(TryCand); in pickNodeFromQueue()
3622 LLVM_DEBUG(traceCandidate(Cand)); in pickNodeFromQueue()
3693 SchedCandidate Cand = BotCand; in pickNodeBidirectional() local
3695 if (tryCandidate(Cand, TopCand, nullptr)) { in pickNodeBidirectional()
3696 Cand.setBest(TopCand); in pickNodeBidirectional()
3697 LLVM_DEBUG(traceCandidate(Cand)); in pickNodeBidirectional()
3700 IsTopNode = Cand.AtTop; in pickNodeBidirectional()
3701 tracePick(Cand); in pickNodeBidirectional()
3702 return Cand.SU; in pickNodeBidirectional()
3860 bool PostGenericScheduler::tryCandidate(SchedCandidate &Cand, in tryCandidate() argument
3863 if (!Cand.isValid()) { in tryCandidate()
3870 Top.getLatencyStallCycles(Cand.SU), TryCand, Cand, Stall)) in tryCandidate()
3875 Cand.SU == DAG->getNextClusterSucc(), in tryCandidate()
3876 TryCand, Cand, Cluster)) in tryCandidate()
3880 if (tryLess(TryCand.ResDelta.CritResources, Cand.ResDelta.CritResources, in tryCandidate()
3881 TryCand, Cand, ResourceReduce)) in tryCandidate()
3884 Cand.ResDelta.DemandedResources, in tryCandidate()
3885 TryCand, Cand, ResourceDemand)) in tryCandidate()
3889 if (Cand.Policy.ReduceLatency && tryLatency(TryCand, Cand, Top)) { in tryCandidate()
3894 if (TryCand.SU->NodeNum < Cand.SU->NodeNum) { in tryCandidate()
3902 void PostGenericScheduler::pickNodeFromQueue(SchedCandidate &Cand) { in pickNodeFromQueue() argument
3905 SchedCandidate TryCand(Cand.Policy); in pickNodeFromQueue()
3909 if (tryCandidate(Cand, TryCand)) { in pickNodeFromQueue()
3910 Cand.setBest(TryCand); in pickNodeFromQueue()
3911 LLVM_DEBUG(traceCandidate(Cand)); in pickNodeFromQueue()