Lines Matching defs:TryCand

3172 /// as we may need to differentiate whether TryCand is better than Cand.
3174 GenericSchedulerBase::SchedCandidate &TryCand,
3178 TryCand.Reason = Reason;
3190 GenericSchedulerBase::SchedCandidate &TryCand,
3194 TryCand.Reason = Reason;
3205 bool tryLatency(GenericSchedulerBase::SchedCandidate &TryCand,
3212 if (std::max(TryCand.SU->getDepth(), Cand.SU->getDepth()) >
3214 if (tryLess(TryCand.SU->getDepth(), Cand.SU->getDepth(),
3215 TryCand, Cand, GenericSchedulerBase::TopDepthReduce))
3218 if (tryGreater(TryCand.SU->getHeight(), Cand.SU->getHeight(),
3219 TryCand, Cand, GenericSchedulerBase::TopPathReduce))
3225 if (std::max(TryCand.SU->getHeight(), Cand.SU->getHeight()) >
3227 if (tryLess(TryCand.SU->getHeight(), Cand.SU->getHeight(),
3228 TryCand, Cand, GenericSchedulerBase::BotHeightReduce))
3231 if (tryGreater(TryCand.SU->getDepth(), Cand.SU->getDepth(),
3232 TryCand, Cand, GenericSchedulerBase::BotPathReduce))
3398 GenericSchedulerBase::SchedCandidate &TryCand,
3405 if (tryGreater(TryP.getUnitInc() < 0, CandP.getUnitInc() < 0, TryCand, Cand,
3411 if (Cand.AtTop != TryCand.AtTop)
3419 return tryLess(TryP.getUnitInc(), CandP.getUnitInc(), TryCand, Cand,
3432 return tryGreater(TryRank, CandRank, TryCand, Cand, Reason);
3527 /// \param TryCand refers to the next SUnit candidate, otherwise uninitialized.
3529 /// if Cand is from a different zone than TryCand.
3530 /// \return \c true if TryCand is better than Cand (Reason is NOT NoCand)
3532 SchedCandidate &TryCand,
3536 TryCand.Reason = NodeOrder;
3541 if (tryGreater(biasPhysReg(TryCand.SU, TryCand.AtTop),
3542 biasPhysReg(Cand.SU, Cand.AtTop), TryCand, Cand, PhysReg))
3543 return TryCand.Reason != NoCand;
3546 if (DAG->isTrackingPressure() && tryPressure(TryCand.RPDelta.Excess,
3548 TryCand, Cand, RegExcess, TRI,
3550 return TryCand.Reason != NoCand;
3553 if (DAG->isTrackingPressure() && tryPressure(TryCand.RPDelta.CriticalMax,
3555 TryCand, Cand, RegCritical, TRI,
3557 return TryCand.Reason != NoCand;
3570 tryLatency(TryCand, Cand, *Zone))
3571 return TryCand.Reason != NoCand;
3574 if (tryLess(Zone->getLatencyStallCycles(TryCand.SU),
3575 Zone->getLatencyStallCycles(Cand.SU), TryCand, Cand, Stall))
3576 return TryCand.Reason != NoCand;
3588 TryCand.AtTop ? DAG->getNextClusterSucc() : DAG->getNextClusterPred();
3589 if (tryGreater(TryCand.SU == TryCandNextClusterSU,
3591 TryCand, Cand, Cluster))
3592 return TryCand.Reason != NoCand;
3596 if (tryLess(getWeakLeft(TryCand.SU, TryCand.AtTop),
3598 TryCand, Cand, Weak))
3599 return TryCand.Reason != NoCand;
3603 if (DAG->isTrackingPressure() && tryPressure(TryCand.RPDelta.CurrentMax,
3605 TryCand, Cand, RegMax, TRI,
3607 return TryCand.Reason != NoCand;
3611 TryCand.initResourceDelta(DAG, SchedModel);
3612 if (tryLess(TryCand.ResDelta.CritResources, Cand.ResDelta.CritResources,
3613 TryCand, Cand, ResourceReduce))
3614 return TryCand.Reason != NoCand;
3615 if (tryGreater(TryCand.ResDelta.DemandedResources,
3617 TryCand, Cand, ResourceDemand))
3618 return TryCand.Reason != NoCand;
3622 if (!RegionPolicy.DisableLatencyHeuristic && TryCand.Policy.ReduceLatency &&
3623 !Rem.IsAcyclicLatencyLimited && tryLatency(TryCand, Cand, *Zone))
3624 return TryCand.Reason != NoCand;
3627 if ((Zone->isTop() && TryCand.SU->NodeNum < Cand.SU->NodeNum)
3628 || (!Zone->isTop() && TryCand.SU->NodeNum > Cand.SU->NodeNum)) {
3629 TryCand.Reason = NodeOrder;
3652 SchedCandidate TryCand(ZonePolicy);
3653 initCandidate(TryCand, SU, Zone.isTop(), RPTracker, TempTracker);
3655 SchedBoundary *ZoneArg = Cand.AtTop == TryCand.AtTop ? &Zone : nullptr;
3656 if (tryCandidate(Cand, TryCand, ZoneArg)) {
3658 if (TryCand.ResDelta == SchedResourceDelta())
3659 TryCand.initResourceDelta(DAG, SchedModel);
3660 Cand.setBest(TryCand);
3934 /// \param TryCand refers to the next SUnit candidate, otherwise uninitialized.
3935 /// \return \c true if TryCand is better than Cand (Reason is NOT NoCand)
3937 SchedCandidate &TryCand) {
3940 TryCand.Reason = NodeOrder;
3945 if (tryLess(Top.getLatencyStallCycles(TryCand.SU),
3946 Top.getLatencyStallCycles(Cand.SU), TryCand, Cand, Stall))
3947 return TryCand.Reason != NoCand;
3950 if (tryGreater(TryCand.SU == DAG->getNextClusterSucc(),
3952 TryCand, Cand, Cluster))
3953 return TryCand.Reason != NoCand;
3956 if (tryLess(TryCand.ResDelta.CritResources, Cand.ResDelta.CritResources,
3957 TryCand, Cand, ResourceReduce))
3958 return TryCand.Reason != NoCand;
3959 if (tryGreater(TryCand.ResDelta.DemandedResources,
3961 TryCand, Cand, ResourceDemand))
3962 return TryCand.Reason != NoCand;
3965 if (Cand.Policy.ReduceLatency && tryLatency(TryCand, Cand, Top)) {
3966 return TryCand.Reason != NoCand;
3970 if (TryCand.SU->NodeNum < Cand.SU->NodeNum) {
3971 TryCand.Reason = NodeOrder;
3982 SchedCandidate TryCand(Cand.Policy);
3983 TryCand.SU = SU;
3984 TryCand.AtTop = Zone.isTop();
3985 TryCand.initResourceDelta(DAG, SchedModel);
3986 if (tryCandidate(Cand, TryCand)) {
3987 Cand.setBest(TryCand);