Lines Matching refs:BB

102 bool blockEndsInUnreachable(const BasicBlock &BB) {  in blockEndsInUnreachable()  argument
103 if (!succ_empty(&BB)) in blockEndsInUnreachable()
105 if (BB.empty()) in blockEndsInUnreachable()
107 const Instruction *I = BB.getTerminator(); in blockEndsInUnreachable()
111 void analyzeProfMetadata(BasicBlock *BB, in analyzeProfMetadata() argument
115 BranchInst *CondBr = dyn_cast<BranchInst>(BB->getTerminator()); in analyzeProfMetadata()
137 bool unlikelyExecuted(BasicBlock &BB) { in unlikelyExecuted() argument
139 if (BB.isEHPad() || isa<ResumeInst>(BB.getTerminator())) in unlikelyExecuted()
144 for (Instruction &I : BB) in unlikelyExecuted()
152 if (blockEndsInUnreachable(BB)) { in unlikelyExecuted()
154 dyn_cast_or_null<CallInst>(BB.getTerminator()->getPrevNode())) in unlikelyExecuted()
164 static bool mayExtractBlock(const BasicBlock &BB) { in mayExtractBlock() argument
171 if (BB.hasAddressTaken() || BB.isEHPad()) in mayExtractBlock()
173 auto Term = BB.getTerminator(); in mayExtractBlock()
218 bool HotColdSplitting::isBasicBlockCold(BasicBlock *BB, in isBasicBlockCold() argument
224 if (ColdBlocks.count(BB)) in isBasicBlockCold()
228 if (PSI->isColdBlock(BB, BFI)) in isBasicBlockCold()
232 analyzeProfMetadata(BB, ColdProbThresh, AnnotatedColdBlocks); in isBasicBlockCold()
236 if (AnnotatedColdBlocks.count(BB)) in isBasicBlockCold()
240 if (EnableStaticAnalysis && unlikelyExecuted(*BB)) in isBasicBlockCold()
275 for (BasicBlock *BB : Region) in getOutliningBenefit()
276 for (Instruction &I : BB->instructionsWithoutDebug()) in getOutliningBenefit()
277 if (&I != BB->getTerminator()) in getOutliningBenefit()
299 for (BasicBlock *BB : Region) { in getOutliningPenalty()
302 if (succ_empty(BB)) { in getOutliningPenalty()
303 NoBlocksReturn &= isa<UnreachableInst>(BB->getTerminator()); in getOutliningPenalty()
307 for (BasicBlock *SuccBB : successors(BB)) { in getOutliningPenalty()
461 static unsigned getEntryPointScore(BasicBlock &BB, unsigned Score) { in getEntryPointScore() argument
462 return mayExtractBlock(BB) ? Score : 0; in getEntryPointScore()
487 auto addBlockToRegion = [&](BasicBlock *BB, unsigned Score) { in create() argument
488 RegionBlocks.insert(BB); in create()
489 ColdRegion->Blocks.emplace_back(BB, Score); in create()
600 BasicBlock *BB = Block.first; in takeSingleEntrySubRegion() local
603 BB == SuggestedEntryPoint || DT.dominates(SuggestedEntryPoint, BB); in takeSingleEntrySubRegion()
605 NextEntryPoint = BB; in takeSingleEntrySubRegion()
608 if (InSubRegion && BB != SuggestedEntryPoint) in takeSingleEntrySubRegion()
609 SubRegion.push_back(BB); in takeSingleEntrySubRegion()
659 for (BasicBlock *BB : RPOT) { in outlineColdRegions()
660 if (!isBasicBlockCold(BB, ColdProbThresh, ColdBlocks, AnnotatedColdBlocks, in outlineColdRegions()
666 BB->dump(); in outlineColdRegions()
674 auto Regions = OutliningRegion::create(*BB, *DT, *PDT); in outlineColdRegions()
714 for (BasicBlock *BB : SubRegion) in outlineColdRegions()
715 BB->dump(); in outlineColdRegions()