Lines Matching defs:TryCand
3169 /// as we may need to differentiate whether TryCand is better than Cand.
3171 GenericSchedulerBase::SchedCandidate &TryCand,
3175 TryCand.Reason = Reason;
3187 GenericSchedulerBase::SchedCandidate &TryCand,
3191 TryCand.Reason = Reason;
3202 bool tryLatency(GenericSchedulerBase::SchedCandidate &TryCand,
3209 if (std::max(TryCand.SU->getDepth(), Cand.SU->getDepth()) >
3211 if (tryLess(TryCand.SU->getDepth(), Cand.SU->getDepth(),
3212 TryCand, Cand, GenericSchedulerBase::TopDepthReduce))
3215 if (tryGreater(TryCand.SU->getHeight(), Cand.SU->getHeight(),
3216 TryCand, Cand, GenericSchedulerBase::TopPathReduce))
3222 if (std::max(TryCand.SU->getHeight(), Cand.SU->getHeight()) >
3224 if (tryLess(TryCand.SU->getHeight(), Cand.SU->getHeight(),
3225 TryCand, Cand, GenericSchedulerBase::BotHeightReduce))
3228 if (tryGreater(TryCand.SU->getDepth(), Cand.SU->getDepth(),
3229 TryCand, Cand, GenericSchedulerBase::BotPathReduce))
3391 GenericSchedulerBase::SchedCandidate &TryCand,
3398 if (tryGreater(TryP.getUnitInc() < 0, CandP.getUnitInc() < 0, TryCand, Cand,
3404 if (Cand.AtTop != TryCand.AtTop)
3412 return tryLess(TryP.getUnitInc(), CandP.getUnitInc(), TryCand, Cand,
3425 return tryGreater(TryRank, CandRank, TryCand, Cand, Reason);
3520 /// \param TryCand refers to the next SUnit candidate, otherwise uninitialized.
3522 /// if Cand is from a different zone than TryCand.
3523 /// \return \c true if TryCand is better than Cand (Reason is NOT NoCand)
3525 SchedCandidate &TryCand,
3529 TryCand.Reason = NodeOrder;
3534 if (tryGreater(biasPhysReg(TryCand.SU, TryCand.AtTop),
3535 biasPhysReg(Cand.SU, Cand.AtTop), TryCand, Cand, PhysReg))
3536 return TryCand.Reason != NoCand;
3539 if (DAG->isTrackingPressure() && tryPressure(TryCand.RPDelta.Excess,
3541 TryCand, Cand, RegExcess, TRI,
3543 return TryCand.Reason != NoCand;
3546 if (DAG->isTrackingPressure() && tryPressure(TryCand.RPDelta.CriticalMax,
3548 TryCand, Cand, RegCritical, TRI,
3550 return TryCand.Reason != NoCand;
3563 tryLatency(TryCand, Cand, *Zone))
3564 return TryCand.Reason != NoCand;
3567 if (tryLess(Zone->getLatencyStallCycles(TryCand.SU),
3568 Zone->getLatencyStallCycles(Cand.SU), TryCand, Cand, Stall))
3569 return TryCand.Reason != NoCand;
3581 TryCand.AtTop ? DAG->getNextClusterSucc() : DAG->getNextClusterPred();
3582 if (tryGreater(TryCand.SU == TryCandNextClusterSU,
3584 TryCand, Cand, Cluster))
3585 return TryCand.Reason != NoCand;
3589 if (tryLess(getWeakLeft(TryCand.SU, TryCand.AtTop),
3591 TryCand, Cand, Weak))
3592 return TryCand.Reason != NoCand;
3596 if (DAG->isTrackingPressure() && tryPressure(TryCand.RPDelta.CurrentMax,
3598 TryCand, Cand, RegMax, TRI,
3600 return TryCand.Reason != NoCand;
3604 TryCand.initResourceDelta(DAG, SchedModel);
3605 if (tryLess(TryCand.ResDelta.CritResources, Cand.ResDelta.CritResources,
3606 TryCand, Cand, ResourceReduce))
3607 return TryCand.Reason != NoCand;
3608 if (tryGreater(TryCand.ResDelta.DemandedResources,
3610 TryCand, Cand, ResourceDemand))
3611 return TryCand.Reason != NoCand;
3615 if (!RegionPolicy.DisableLatencyHeuristic && TryCand.Policy.ReduceLatency &&
3616 !Rem.IsAcyclicLatencyLimited && tryLatency(TryCand, Cand, *Zone))
3617 return TryCand.Reason != NoCand;
3620 if ((Zone->isTop() && TryCand.SU->NodeNum < Cand.SU->NodeNum)
3621 || (!Zone->isTop() && TryCand.SU->NodeNum > Cand.SU->NodeNum)) {
3622 TryCand.Reason = NodeOrder;
3645 SchedCandidate TryCand(ZonePolicy);
3646 initCandidate(TryCand, SU, Zone.isTop(), RPTracker, TempTracker);
3648 SchedBoundary *ZoneArg = Cand.AtTop == TryCand.AtTop ? &Zone : nullptr;
3649 if (tryCandidate(Cand, TryCand, ZoneArg)) {
3651 if (TryCand.ResDelta == SchedResourceDelta())
3652 TryCand.initResourceDelta(DAG, SchedModel);
3653 Cand.setBest(TryCand);
3938 /// \param TryCand refers to the next SUnit candidate, otherwise uninitialized.
3939 /// \return \c true if TryCand is better than Cand (Reason is NOT NoCand)
3941 SchedCandidate &TryCand) {
3944 TryCand.Reason = NodeOrder;
3949 if (tryLess(Top.getLatencyStallCycles(TryCand.SU),
3950 Top.getLatencyStallCycles(Cand.SU), TryCand, Cand, Stall))
3951 return TryCand.Reason != NoCand;
3957 TryCand.AtTop ? DAG->getNextClusterSucc() : DAG->getNextClusterPred();
3958 if (tryGreater(TryCand.SU == TryCandNextClusterSU,
3959 Cand.SU == CandNextClusterSU, TryCand, Cand, Cluster))
3960 return TryCand.Reason != NoCand;
3963 if (tryLess(TryCand.ResDelta.CritResources, Cand.ResDelta.CritResources,
3964 TryCand, Cand, ResourceReduce))
3965 return TryCand.Reason != NoCand;
3966 if (tryGreater(TryCand.ResDelta.DemandedResources,
3968 TryCand, Cand, ResourceDemand))
3969 return TryCand.Reason != NoCand;
3973 if (Cand.AtTop == TryCand.AtTop) {
3976 tryLatency(TryCand, Cand, Cand.AtTop ? Top : Bot))
3977 return TryCand.Reason != NoCand;
3981 if (TryCand.SU->NodeNum < Cand.SU->NodeNum) {
3982 TryCand.Reason = NodeOrder;
3993 SchedCandidate TryCand(Cand.Policy);
3994 TryCand.SU = SU;
3995 TryCand.AtTop = Zone.isTop();
3996 TryCand.initResourceDelta(DAG, SchedModel);
3997 if (tryCandidate(Cand, TryCand)) {
3998 Cand.setBest(TryCand);