Lines Matching refs:TryCand
2470 GenericSchedulerBase::SchedCandidate &TryCand,
2474 TryCand.Reason = Reason;
2486 GenericSchedulerBase::SchedCandidate &TryCand,
2490 TryCand.Reason = Reason;
2501 static bool tryLatency(GenericSchedulerBase::SchedCandidate &TryCand,
2506 if (tryLess(TryCand.SU->getDepth(), Cand.SU->getDepth(),
2507 TryCand, Cand, GenericSchedulerBase::TopDepthReduce))
2510 if (tryGreater(TryCand.SU->getHeight(), Cand.SU->getHeight(),
2511 TryCand, Cand, GenericSchedulerBase::TopPathReduce))
2515 if (tryLess(TryCand.SU->getHeight(), Cand.SU->getHeight(),
2516 TryCand, Cand, GenericSchedulerBase::BotHeightReduce))
2519 if (tryGreater(TryCand.SU->getDepth(), Cand.SU->getDepth(),
2520 TryCand, Cand, GenericSchedulerBase::BotPathReduce))
2679 GenericSchedulerBase::SchedCandidate &TryCand,
2686 if (tryGreater(TryP.getUnitInc() < 0, CandP.getUnitInc() < 0, TryCand, Cand,
2692 if (Cand.AtTop != TryCand.AtTop)
2700 return tryLess(TryP.getUnitInc(), CandP.getUnitInc(), TryCand, Cand,
2713 return tryGreater(TryRank, CandRank, TryCand, Cand, Reason);
2792 /// \param TryCand refers to the next SUnit candidate, otherwise uninitialized.
2794 // if Cand is from a different zone than TryCand.
2796 SchedCandidate &TryCand,
2800 TryCand.Reason = NodeOrder;
2804 if (tryGreater(biasPhysRegCopy(TryCand.SU, TryCand.AtTop),
2806 TryCand, Cand, PhysRegCopy))
2810 if (DAG->isTrackingPressure() && tryPressure(TryCand.RPDelta.Excess,
2812 TryCand, Cand, RegExcess, TRI,
2817 if (DAG->isTrackingPressure() && tryPressure(TryCand.RPDelta.CriticalMax,
2819 TryCand, Cand, RegCritical, TRI,
2835 tryLatency(TryCand, Cand, *Zone))
2839 if (tryLess(Zone->getLatencyStallCycles(TryCand.SU),
2840 Zone->getLatencyStallCycles(Cand.SU), TryCand, Cand, Stall))
2853 TryCand.AtTop ? DAG->getNextClusterSucc() : DAG->getNextClusterPred();
2854 if (tryGreater(TryCand.SU == TryCandNextClusterSU,
2856 TryCand, Cand, Cluster))
2861 if (tryLess(getWeakLeft(TryCand.SU, TryCand.AtTop),
2863 TryCand, Cand, Weak))
2868 if (DAG->isTrackingPressure() && tryPressure(TryCand.RPDelta.CurrentMax,
2870 TryCand, Cand, RegMax, TRI,
2876 TryCand.initResourceDelta(DAG, SchedModel);
2877 if (tryLess(TryCand.ResDelta.CritResources, Cand.ResDelta.CritResources,
2878 TryCand, Cand, ResourceReduce))
2880 if (tryGreater(TryCand.ResDelta.DemandedResources,
2882 TryCand, Cand, ResourceDemand))
2887 if (!RegionPolicy.DisableLatencyHeuristic && TryCand.Policy.ReduceLatency &&
2888 !Rem.IsAcyclicLatencyLimited && tryLatency(TryCand, Cand, *Zone))
2894 if (tryGreater(Zone->isNextSU(TryCand.SU), Zone->isNextSU(Cand.SU),
2895 TryCand, Cand, NextDefUse))
2899 if ((Zone->isTop() && TryCand.SU->NodeNum < Cand.SU->NodeNum)
2900 || (!Zone->isTop() && TryCand.SU->NodeNum > Cand.SU->NodeNum)) {
2901 TryCand.Reason = NodeOrder;
2921 SchedCandidate TryCand(ZonePolicy);
2922 initCandidate(TryCand, *I, Zone.isTop(), RPTracker, TempTracker);
2924 SchedBoundary *ZoneArg = Cand.AtTop == TryCand.AtTop ? &Zone : nullptr;
2925 tryCandidate(Cand, TryCand, ZoneArg);
2926 if (TryCand.Reason != NoCand) {
2928 if (TryCand.ResDelta == SchedResourceDelta())
2929 TryCand.initResourceDelta(DAG, SchedModel);
2930 Cand.setBest(TryCand);
3173 /// \param TryCand refers to the next SUnit candidate, otherwise uninitialized.
3175 SchedCandidate &TryCand) {
3179 TryCand.Reason = NodeOrder;
3184 if (tryLess(Top.getLatencyStallCycles(TryCand.SU),
3185 Top.getLatencyStallCycles(Cand.SU), TryCand, Cand, Stall))
3189 if (tryLess(TryCand.ResDelta.CritResources, Cand.ResDelta.CritResources,
3190 TryCand, Cand, ResourceReduce))
3192 if (tryGreater(TryCand.ResDelta.DemandedResources,
3194 TryCand, Cand, ResourceDemand))
3198 if (Cand.Policy.ReduceLatency && tryLatency(TryCand, Cand, Top)) {
3203 if (TryCand.SU->NodeNum < Cand.SU->NodeNum)
3204 TryCand.Reason = NodeOrder;
3210 SchedCandidate TryCand(Cand.Policy);
3211 TryCand.SU = *I;
3212 TryCand.AtTop = true;
3213 TryCand.initResourceDelta(DAG, SchedModel);
3214 tryCandidate(Cand, TryCand);
3215 if (TryCand.Reason != NoCand) {
3216 Cand.setBest(TryCand);