Lines Matching refs:Succ

481       const MachineBasicBlock *BB, const MachineBasicBlock *Succ,
540 const MachineBasicBlock *BB, const MachineBasicBlock *Succ,
564 const MachineBasicBlock *BB, MachineBasicBlock *Succ,
665 for (MachineBasicBlock *Succ : MBB->successors()) { in markBlockSuccessors()
666 if (BlockFilter && !BlockFilter->count(Succ)) in markBlockSuccessors()
668 BlockChain &SuccChain = *BlockToChain[Succ]; in markBlockSuccessors()
670 if (&Chain == &SuccChain || Succ == LoopHeaderBB) in markBlockSuccessors()
712 for (MachineBasicBlock *Succ : BB->successors()) { in collectViableSuccessors()
714 if (Succ->isEHPad() || (BlockFilter && !BlockFilter->count(Succ))) { in collectViableSuccessors()
717 BlockChain *SuccChain = BlockToChain[Succ]; in collectViableSuccessors()
720 } else if (Succ != *SuccChain->begin()) { in collectViableSuccessors()
721 LLVM_DEBUG(dbgs() << " " << getBlockName(Succ) in collectViableSuccessors()
727 AdjustedSumProb -= MBPI->getEdgeProbability(BB, Succ); in collectViableSuccessors()
729 Successors.push_back(Succ); in collectViableSuccessors()
760 for (MachineBasicBlock *Succ : BB.successors()) in hasSameSuccessors()
761 if (!Successors.count(Succ)) in hasSameSuccessors()
799 const MachineBasicBlock *BB, const MachineBasicBlock *Succ, in isProfitableToTailDup() argument
829 collectViableSuccessors(Succ, Chain, BlockFilter, SuccSuccs); in isProfitableToTailDup()
830 BranchProbability PProb = MBPI->getEdgeProbability(BB, Succ); in isProfitableToTailDup()
832 auto SuccFreq = MBFI->getBlockFreq(Succ); in isProfitableToTailDup()
844 auto Prob = MBPI->getEdgeProbability(Succ, SuccSucc); in isProfitableToTailDup()
848 if (MPDT->dominates(SuccSucc, Succ)) { in isProfitableToTailDup()
856 for (MachineBasicBlock *SuccPred : Succ->predecessors()) { in isProfitableToTailDup()
857 if (SuccPred == Succ || SuccPred == BB in isProfitableToTailDup()
862 * MBPI->getEdgeProbability(SuccPred, Succ); in isProfitableToTailDup()
887 if (PDom == nullptr || !Succ->isSuccessor(PDom)) { in isProfitableToTailDup()
897 BranchProbability UProb = MBPI->getEdgeProbability(Succ, PDom); in isProfitableToTailDup()
932 !hasBetterLayoutPredecessor(Succ, PDom, *BlockToChain[PDom], UProb, UProb, in isProfitableToTailDup()
966 for (MachineBasicBlock *Succ : ViableSuccs) { in isTrellis()
968 for (auto *SuccPred : Succ->predecessors()) { in isTrellis()
979 PredChain == &Chain || PredChain == BlockToChain[Succ]) in isTrellis()
1066 for (auto *Succ : ViableSuccs) { in getBestTrellisSuccessor() local
1067 for (MachineBasicBlock *SuccPred : Succ->predecessors()) { in getBestTrellisSuccessor()
1072 BlockToChain[SuccPred] == BlockToChain[Succ]) in getBestTrellisSuccessor()
1075 MBPI->getEdgeProbability(SuccPred, Succ); in getBestTrellisSuccessor()
1076 Edges[SuccIndex].push_back({EdgeFreq, SuccPred, Succ}); in getBestTrellisSuccessor()
1133 const MachineBasicBlock *BB, MachineBasicBlock *Succ, in canTailDuplicateUnplacedPreds() argument
1135 if (!shouldTailDuplicate(Succ)) in canTailDuplicateUnplacedPreds()
1146 for (MachineBasicBlock *Pred : Succ->predecessors()) { in canTailDuplicateUnplacedPreds()
1153 if (!TailDup.canTailDuplicate(Succ, Pred)) { in canTailDuplicateUnplacedPreds()
1208 if (Succ->succ_empty()) in canTailDuplicateUnplacedPreds()
1232 if ((NumDup > Succ->succ_size()) || !Duplicate) in canTailDuplicateUnplacedPreds()
1287 for (MachineBasicBlock *Succ : BB.successors()) { in precomputeTriangleChains()
1288 if (!MPDT->dominates(Succ, &BB)) in precomputeTriangleChains()
1290 PDom = Succ; in precomputeTriangleChains()
1400 const MachineBasicBlock *BB, const MachineBasicBlock *Succ, in hasBetterLayoutPredecessor() argument
1529 for (MachineBasicBlock *Pred : Succ->predecessors()) { in hasBetterLayoutPredecessor()
1531 if (Pred == Succ || PredChain == &SuccChain || in hasBetterLayoutPredecessor()
1553 MBFI->getBlockFreq(Pred) * MBPI->getEdgeProbability(Pred, Succ); in hasBetterLayoutPredecessor()
1561 LLVM_DEBUG(dbgs() << " Not a candidate: " << getBlockName(Succ) << " -> " in hasBetterLayoutPredecessor()
1599 MachineBasicBlock *Succ = FoundEdge->second.BB; in selectBestSuccessor() local
1601 BlockChain *SuccChain = BlockToChain[Succ]; in selectBestSuccessor()
1602 if (BB->isSuccessor(Succ) && (!BlockFilter || BlockFilter->count(Succ)) && in selectBestSuccessor()
1603 SuccChain != &Chain && Succ == *SuccChain->begin()) in selectBestSuccessor()
1618 for (MachineBasicBlock *Succ : Successors) { in selectBestSuccessor()
1619 auto RealSuccProb = MBPI->getEdgeProbability(BB, Succ); in selectBestSuccessor()
1623 BlockChain &SuccChain = *BlockToChain[Succ]; in selectBestSuccessor()
1626 if (hasBetterLayoutPredecessor(BB, Succ, SuccChain, SuccProb, RealSuccProb, in selectBestSuccessor()
1629 if (allowTailDupPlacement() && shouldTailDuplicate(Succ)) in selectBestSuccessor()
1630 DupCandidates.emplace_back(SuccProb, Succ); in selectBestSuccessor()
1635 dbgs() << " Candidate: " << getBlockName(Succ) in selectBestSuccessor()
1646 BestSucc.BB = Succ; in selectBestSuccessor()
1661 MachineBasicBlock *Succ; in selectBestSuccessor() local
1662 std::tie(DupProb, Succ) = Tup; in selectBestSuccessor()
1665 if (canTailDuplicateUnplacedPreds(BB, Succ, Chain, BlockFilter) in selectBestSuccessor()
1666 && (isProfitableToTailDup(BB, Succ, BestProb, Chain, BlockFilter))) { in selectBestSuccessor()
1667 LLVM_DEBUG(dbgs() << " Candidate: " << getBlockName(Succ) in selectBestSuccessor()
1670 BestSucc.BB = Succ; in selectBestSuccessor()
1928 for (MachineBasicBlock *Succ : Pred->successors()) { in TopFallThroughFreq()
1929 auto SuccProb = MBPI->getEdgeProbability(Pred, Succ); in TopFallThroughFreq()
1930 BlockChain *SuccChain = BlockToChain[Succ]; in TopFallThroughFreq()
1933 if (!LoopBlockSet.count(Succ) && (SuccProb > TopProb) && in TopFallThroughFreq()
1934 (!SuccChain || Succ == *SuccChain->begin())) { in TopFallThroughFreq()
2006 for (MachineBasicBlock *Succ : BestPred->successors()) { in FallThroughGains()
2007 if ((Succ == NewTop) || (Succ == BestPred) || !LoopBlockSet.count(Succ)) in FallThroughGains()
2009 if (ComputedEdges.find(Succ) != ComputedEdges.end()) in FallThroughGains()
2011 BlockChain *SuccChain = BlockToChain[Succ]; in FallThroughGains()
2012 if ((SuccChain && (Succ != *SuccChain->begin())) || in FallThroughGains()
2016 MBPI->getEdgeProbability(BestPred, Succ); in FallThroughGains()
2202 for (MachineBasicBlock *Succ : MBB->successors()) { in findBestLoopExit()
2203 if (Succ->isEHPad()) in findBestLoopExit()
2205 if (Succ == MBB) in findBestLoopExit()
2207 BlockChain &SuccChain = *BlockToChain[Succ]; in findBestLoopExit()
2211 << getBlockName(Succ) << " (chain conflict)\n"); in findBestLoopExit()
2215 auto SuccProb = MBPI->getEdgeProbability(MBB, Succ); in findBestLoopExit()
2216 if (LoopBlockSet.count(Succ)) { in findBestLoopExit()
2218 << getBlockName(Succ) << " (" << SuccProb << ")\n"); in findBestLoopExit()
2224 if (MachineLoop *ExitLoop = MLI->getLoopFor(Succ)) { in findBestLoopExit()
2232 << getBlockName(Succ) << " [L:" << SuccLoopDepth in findBestLoopExit()
2242 (MBB->isLayoutSuccessor(Succ) && in findBestLoopExit()
2296 for (MachineBasicBlock *Succ : Pred->successors()) { in hasViableTopFallthrough()
2297 auto SuccProb = MBPI->getEdgeProbability(Pred, Succ); in hasViableTopFallthrough()
2298 BlockChain *SuccChain = BlockToChain[Succ]; in hasViableTopFallthrough()
2301 if ((!SuccChain || Succ == *SuccChain->begin()) && SuccProb > TopProb) { in hasViableTopFallthrough()
2343 for (MachineBasicBlock *Succ : Bottom->successors()) { in rotateLoop()
2344 BlockChain *SuccChain = BlockToChain[Succ]; in rotateLoop()
2345 if (!LoopBlockSet.count(Succ) && in rotateLoop()
2346 (!SuccChain || Succ == *SuccChain->begin())) in rotateLoop()
2456 for (auto *Succ : BB->successors()) { in rotateLoopWithProfile() local
2457 BlockChain *SuccChain = BlockToChain[Succ]; in rotateLoopWithProfile()
2458 if (!LoopBlockSet.count(Succ) && in rotateLoopWithProfile()
2459 (!SuccChain || Succ == *SuccChain->begin())) { in rotateLoopWithProfile()
2460 auto SuccProb = MBPI->getEdgeProbability(BB, Succ); in rotateLoopWithProfile()
3168 for (MachineBasicBlock *Succ : Pred->successors()) in isBestSuccessor()
3169 if (Succ != BB) { in isBestSuccessor()
3170 if (BlockFilter && !BlockFilter->count(Succ)) in isBestSuccessor()
3172 BlockChain *SuccChain = BlockToChain[Succ]; in isBestSuccessor()
3173 if (SuccChain && (Succ != *SuccChain->begin())) in isBestSuccessor()
3175 BranchProbability SuccProb = MBPI->getEdgeProbability(Pred, Succ); in isBestSuccessor()
3507 for (MachineBasicBlock *Succ : MBB.successors()) { in applyExtTsp()
3508 auto EP = MBPI->getEdgeProbability(&MBB, Succ); in applyExtTsp()
3510 auto Edge = std::make_pair(BlockIndex[&MBB], BlockIndex[Succ]); in applyExtTsp()
3675 for (MachineBasicBlock *Succ : MBB.successors()) { in INITIALIZE_PASS_DEPENDENCY()
3677 if (MBB.isLayoutSuccessor(Succ)) in INITIALIZE_PASS_DEPENDENCY()
3681 BlockFreq * MBPI->getEdgeProbability(&MBB, Succ); in INITIALIZE_PASS_DEPENDENCY()