Lines Matching defs:BPI
296 BPI = BPI_;
1047 if (auto *BPI = getBPI())
1048 BPI->eraseBlock(BB);
1199 if (auto *BPI = getBPI())
1200 BPI->eraseBlock(BB);
1650 if (auto *BPI = getBPI())
1651 BPI->eraseBlock(BB);
2264 // Build BPI/BFI before any changes are made to IR.
2267 auto *BPI = getOrCreateBPI(BFI != nullptr);
2279 assert(BPI && "It's expected BPI to exist along with BFI");
2281 BPI->getEdgeProbability(PredPredBB, PredBB);
2293 if (BPI)
2294 BPI->copyEdgeProbabilities(PredBB, NewBB);
2377 // Build BPI/BFI before any changes are made to IR.
2380 auto *BPI = getOrCreateBPI(BFI != nullptr);
2406 assert(BPI && "It's expected BPI to exist along with BFI");
2408 BFI->getBlockFreq(PredBB) * BPI->getEdgeProbability(PredBB, BB);
2449 updateBlockFreqAndEdgeWeight(PredBB, BB, NewBB, SuccBB, BFI, BPI, HasProfile);
2468 auto *BPI = getOrCreateBPI(true);
2471 Pred, BFI->getBlockFreq(Pred) * BPI->getEdgeProbability(Pred, BB)));
2518 BranchProbabilityInfo *BPI,
2520 assert(((BFI && BPI) || (!BFI && !BFI)) &&
2521 "Both BFI & BPI should either be set or unset");
2525 "It's expected to have BFI/BPI when profile info exists");
2533 auto BB2SuccBBFreq = BBOrigFreq * BPI->getEdgeProbability(BB, SuccBB);
2543 : BBOrigFreq * BPI->getEdgeProbability(BB, Succ);
2562 // Update edge probabilities in BPI.
2563 BPI->setEdgeProbability(BB, BBSuccProbs);
2596 // FIXME this locally as well so that BPI and BFI are consistent as well. We
2737 if (auto *BPI = getBPI())
2738 BPI->copyEdgeProbabilities(BB, PredBB);
2785 // Update BPI if exists.
2786 if (auto *BPI = getBPI())
2787 BPI->setEdgeProbability(Pred, BP);
3127 // TODO: We would like to preserve BPI/BFI. Enable once all paths update them.
3128 // TODO: Would be nice to verify BPI/BFI consistency as well.
3148 // TODO: This shouldn't be needed once 'getPreservedAnalysis' reports BPI/BFI
3172 if (!BPI) {
3173 assert(FAM && "Can't create BPI without FunctionAnalysisManager");
3174 BPI = FAM->getCachedResult<BranchProbabilityAnalysis>(*F);
3176 return *BPI;
3187 // Important note on validity of BPI/BFI. JumpThreading tries to preserve
3188 // BPI/BFI as it goes. Thus if cached instance exists it will be updated.
3189 // Otherwise, new instance of BPI/BFI is created (up to date by definition).
3196 BPI = runExternalAnalysis<BranchProbabilityAnalysis>();
3198 return *BPI;