Lines Matching refs:Best
3431 std::optional<NonTrivialUnswitchCandidate> Best; in findBestNonTrivialUnswitchCandidate() local
3458 if (!Best || CandidateCost < Best->Cost) { in findBestNonTrivialUnswitchCandidate()
3459 Best = Candidate; in findBestNonTrivialUnswitchCandidate()
3460 Best->Cost = CandidateCost; in findBestNonTrivialUnswitchCandidate()
3463 assert(Best && "Must be!"); in findBestNonTrivialUnswitchCandidate()
3464 return *Best; in findBestNonTrivialUnswitchCandidate()
3517 NonTrivialUnswitchCandidate Best = findBestNonTrivialUnswitchCandidate( in unswitchBestCondition() local
3520 assert(Best.TI && "Failed to find loop unswitch candidate"); in unswitchBestCondition()
3521 assert(Best.Cost && "Failed to compute cost"); in unswitchBestCondition()
3523 if (*Best.Cost >= UnswitchThreshold) { in unswitchBestCondition()
3524 LLVM_DEBUG(dbgs() << "Cannot unswitch, lowest cost found: " << *Best.Cost in unswitchBestCondition()
3530 if (Best.hasPendingInjection()) { in unswitchBestCondition()
3531 Best = injectPendingInvariantConditions(Best, L, DT, LI, AC, MSSAU); in unswitchBestCondition()
3534 assert(!Best.hasPendingInjection() && in unswitchBestCondition()
3537 if (Best.TI != PartialIVCondBranch) in unswitchBestCondition()
3541 if (auto *SI = dyn_cast<SelectInst>(Best.TI)) { in unswitchBestCondition()
3548 Best.TI = turnSelectIntoBranch(SI, DT, LI, MSSAU, &AC); in unswitchBestCondition()
3551 if (isGuard(Best.TI)) in unswitchBestCondition()
3552 Best.TI = in unswitchBestCondition()
3553 turnGuardIntoBranch(cast<IntrinsicInst>(Best.TI), L, DT, LI, MSSAU); in unswitchBestCondition()
3554 InsertFreeze = shouldInsertFreeze(L, *Best.TI, DT, AC); in unswitchBestCondition()
3557 LLVM_DEBUG(dbgs() << " Unswitching non-trivial (cost = " << Best.Cost in unswitchBestCondition()
3558 << ") terminator: " << *Best.TI << "\n"); in unswitchBestCondition()
3559 unswitchNontrivialInvariants(L, *Best.TI, Best.Invariants, PartialIVInfo, DT, in unswitchBestCondition()