Lines Matching refs:Succ
492 const MachineBasicBlock *BB, const MachineBasicBlock *Succ,
551 const MachineBasicBlock *BB, const MachineBasicBlock *Succ,
575 const MachineBasicBlock *BB, MachineBasicBlock *Succ,
676 for (MachineBasicBlock *Succ : MBB->successors()) { in markBlockSuccessors()
677 if (BlockFilter && !BlockFilter->count(Succ)) in markBlockSuccessors()
679 BlockChain &SuccChain = *BlockToChain[Succ]; in markBlockSuccessors()
681 if (&Chain == &SuccChain || Succ == LoopHeaderBB) in markBlockSuccessors()
723 for (MachineBasicBlock *Succ : BB->successors()) { in collectViableSuccessors()
725 if (Succ->isEHPad() || (BlockFilter && !BlockFilter->count(Succ))) { in collectViableSuccessors()
728 BlockChain *SuccChain = BlockToChain[Succ]; in collectViableSuccessors()
731 } else if (Succ != *SuccChain->begin()) { in collectViableSuccessors()
732 LLVM_DEBUG(dbgs() << " " << getBlockName(Succ) in collectViableSuccessors()
738 AdjustedSumProb -= MBPI->getEdgeProbability(BB, Succ); in collectViableSuccessors()
740 Successors.push_back(Succ); in collectViableSuccessors()
771 for (MachineBasicBlock *Succ : BB.successors()) in hasSameSuccessors()
772 if (!Successors.count(Succ)) in hasSameSuccessors()
810 const MachineBasicBlock *BB, const MachineBasicBlock *Succ, in isProfitableToTailDup() argument
840 collectViableSuccessors(Succ, Chain, BlockFilter, SuccSuccs); in isProfitableToTailDup()
841 BranchProbability PProb = MBPI->getEdgeProbability(BB, Succ); in isProfitableToTailDup()
843 auto SuccFreq = MBFI->getBlockFreq(Succ); in isProfitableToTailDup()
855 auto Prob = MBPI->getEdgeProbability(Succ, SuccSucc); in isProfitableToTailDup()
859 if (MPDT->dominates(SuccSucc, Succ)) { in isProfitableToTailDup()
867 for (MachineBasicBlock *SuccPred : Succ->predecessors()) { in isProfitableToTailDup()
868 if (SuccPred == Succ || SuccPred == BB in isProfitableToTailDup()
873 * MBPI->getEdgeProbability(SuccPred, Succ); in isProfitableToTailDup()
898 if (PDom == nullptr || !Succ->isSuccessor(PDom)) { in isProfitableToTailDup()
908 BranchProbability UProb = MBPI->getEdgeProbability(Succ, PDom); in isProfitableToTailDup()
943 !hasBetterLayoutPredecessor(Succ, PDom, *BlockToChain[PDom], UProb, UProb, in isProfitableToTailDup()
977 for (MachineBasicBlock *Succ : ViableSuccs) { in isTrellis()
979 for (auto *SuccPred : Succ->predecessors()) { in isTrellis()
990 PredChain == &Chain || PredChain == BlockToChain[Succ]) in isTrellis()
1077 for (auto *Succ : ViableSuccs) { in getBestTrellisSuccessor() local
1078 for (MachineBasicBlock *SuccPred : Succ->predecessors()) { in getBestTrellisSuccessor()
1083 BlockToChain[SuccPred] == BlockToChain[Succ]) in getBestTrellisSuccessor()
1086 MBPI->getEdgeProbability(SuccPred, Succ); in getBestTrellisSuccessor()
1087 Edges[SuccIndex].push_back({EdgeFreq, SuccPred, Succ}); in getBestTrellisSuccessor()
1144 const MachineBasicBlock *BB, MachineBasicBlock *Succ, in canTailDuplicateUnplacedPreds() argument
1146 if (!shouldTailDuplicate(Succ)) in canTailDuplicateUnplacedPreds()
1157 for (MachineBasicBlock *Pred : Succ->predecessors()) { in canTailDuplicateUnplacedPreds()
1162 || (BlockToChain[Pred] == &Chain && !Succ->succ_empty())) in canTailDuplicateUnplacedPreds()
1164 if (!TailDup.canTailDuplicate(Succ, Pred)) { in canTailDuplicateUnplacedPreds()
1219 if (Succ->succ_empty()) in canTailDuplicateUnplacedPreds()
1243 if ((NumDup > Succ->succ_size()) || !Duplicate) in canTailDuplicateUnplacedPreds()
1298 for (MachineBasicBlock *Succ : BB.successors()) { in precomputeTriangleChains()
1299 if (!MPDT->dominates(Succ, &BB)) in precomputeTriangleChains()
1301 PDom = Succ; in precomputeTriangleChains()
1411 const MachineBasicBlock *BB, const MachineBasicBlock *Succ, in hasBetterLayoutPredecessor() argument
1540 for (MachineBasicBlock *Pred : Succ->predecessors()) { in hasBetterLayoutPredecessor()
1542 if (Pred == Succ || PredChain == &SuccChain || in hasBetterLayoutPredecessor()
1564 MBFI->getBlockFreq(Pred) * MBPI->getEdgeProbability(Pred, Succ); in hasBetterLayoutPredecessor()
1572 LLVM_DEBUG(dbgs() << " Not a candidate: " << getBlockName(Succ) << " -> " in hasBetterLayoutPredecessor()
1610 MachineBasicBlock *Succ = FoundEdge->second.BB; in selectBestSuccessor() local
1612 BlockChain *SuccChain = BlockToChain[Succ]; in selectBestSuccessor()
1613 if (BB->isSuccessor(Succ) && (!BlockFilter || BlockFilter->count(Succ)) && in selectBestSuccessor()
1614 SuccChain != &Chain && Succ == *SuccChain->begin()) in selectBestSuccessor()
1629 for (MachineBasicBlock *Succ : Successors) { in selectBestSuccessor()
1630 auto RealSuccProb = MBPI->getEdgeProbability(BB, Succ); in selectBestSuccessor()
1634 BlockChain &SuccChain = *BlockToChain[Succ]; in selectBestSuccessor()
1637 if (hasBetterLayoutPredecessor(BB, Succ, SuccChain, SuccProb, RealSuccProb, in selectBestSuccessor()
1640 if (allowTailDupPlacement() && shouldTailDuplicate(Succ)) in selectBestSuccessor()
1641 DupCandidates.emplace_back(SuccProb, Succ); in selectBestSuccessor()
1646 dbgs() << " Candidate: " << getBlockName(Succ) in selectBestSuccessor()
1657 BestSucc.BB = Succ; in selectBestSuccessor()
1672 MachineBasicBlock *Succ; in selectBestSuccessor() local
1673 std::tie(DupProb, Succ) = Tup; in selectBestSuccessor()
1676 if (canTailDuplicateUnplacedPreds(BB, Succ, Chain, BlockFilter) in selectBestSuccessor()
1677 && (isProfitableToTailDup(BB, Succ, BestProb, Chain, BlockFilter))) { in selectBestSuccessor()
1678 LLVM_DEBUG(dbgs() << " Candidate: " << getBlockName(Succ) in selectBestSuccessor()
1681 BestSucc.BB = Succ; in selectBestSuccessor()
1940 for (MachineBasicBlock *Succ : Pred->successors()) { in TopFallThroughFreq()
1941 auto SuccProb = MBPI->getEdgeProbability(Pred, Succ); in TopFallThroughFreq()
1942 BlockChain *SuccChain = BlockToChain[Succ]; in TopFallThroughFreq()
1945 if (!LoopBlockSet.count(Succ) && (SuccProb > TopProb) && in TopFallThroughFreq()
1946 (!SuccChain || Succ == *SuccChain->begin())) { in TopFallThroughFreq()
2018 for (MachineBasicBlock *Succ : BestPred->successors()) { in FallThroughGains()
2019 if ((Succ == NewTop) || (Succ == BestPred) || !LoopBlockSet.count(Succ)) in FallThroughGains()
2021 if (ComputedEdges.contains(Succ)) in FallThroughGains()
2023 BlockChain *SuccChain = BlockToChain[Succ]; in FallThroughGains()
2024 if ((SuccChain && (Succ != *SuccChain->begin())) || in FallThroughGains()
2028 MBPI->getEdgeProbability(BestPred, Succ); in FallThroughGains()
2215 for (MachineBasicBlock *Succ : MBB->successors()) { in findBestLoopExit()
2216 if (Succ->isEHPad()) in findBestLoopExit()
2218 if (Succ == MBB) in findBestLoopExit()
2220 BlockChain &SuccChain = *BlockToChain[Succ]; in findBestLoopExit()
2224 << getBlockName(Succ) << " (chain conflict)\n"); in findBestLoopExit()
2228 auto SuccProb = MBPI->getEdgeProbability(MBB, Succ); in findBestLoopExit()
2229 if (LoopBlockSet.count(Succ)) { in findBestLoopExit()
2231 << getBlockName(Succ) << " (" << SuccProb << ")\n"); in findBestLoopExit()
2237 if (MachineLoop *ExitLoop = MLI->getLoopFor(Succ)) { in findBestLoopExit()
2246 << getBlockName(Succ) << " [L:" << SuccLoopDepth << "] (" in findBestLoopExit()
2255 (MBB->isLayoutSuccessor(Succ) && in findBestLoopExit()
2309 for (MachineBasicBlock *Succ : Pred->successors()) { in hasViableTopFallthrough()
2310 auto SuccProb = MBPI->getEdgeProbability(Pred, Succ); in hasViableTopFallthrough()
2311 BlockChain *SuccChain = BlockToChain[Succ]; in hasViableTopFallthrough()
2314 if ((!SuccChain || Succ == *SuccChain->begin()) && SuccProb > TopProb) { in hasViableTopFallthrough()
2356 for (MachineBasicBlock *Succ : Bottom->successors()) { in rotateLoop()
2357 BlockChain *SuccChain = BlockToChain[Succ]; in rotateLoop()
2358 if (!LoopBlockSet.count(Succ) && in rotateLoop()
2359 (!SuccChain || Succ == *SuccChain->begin())) in rotateLoop()
2469 for (auto *Succ : BB->successors()) { in rotateLoopWithProfile() local
2470 BlockChain *SuccChain = BlockToChain[Succ]; in rotateLoopWithProfile()
2471 if (!LoopBlockSet.count(Succ) && in rotateLoopWithProfile()
2472 (!SuccChain || Succ == *SuccChain->begin())) { in rotateLoopWithProfile()
2473 auto SuccProb = MBPI->getEdgeProbability(BB, Succ); in rotateLoopWithProfile()
3202 for (MachineBasicBlock *Succ : Pred->successors()) in isBestSuccessor()
3203 if (Succ != BB) { in isBestSuccessor()
3204 if (BlockFilter && !BlockFilter->count(Succ)) in isBestSuccessor()
3206 BlockChain *SuccChain = BlockToChain[Succ]; in isBestSuccessor()
3207 if (SuccChain && (Succ != *SuccChain->begin())) in isBestSuccessor()
3209 BranchProbability SuccProb = MBPI->getEdgeProbability(Pred, Succ); in isBestSuccessor()
3544 for (MachineBasicBlock *Succ : MBB.successors()) { in applyExtTsp()
3545 auto EP = MBPI->getEdgeProbability(&MBB, Succ); in applyExtTsp()
3548 {BlockIndex[&MBB], BlockIndex[Succ], JumpFreq.getFrequency()}); in applyExtTsp()
3712 for (MachineBasicBlock *Succ : MBB.successors()) { in INITIALIZE_PASS_DEPENDENCY()
3714 if (MBB.isLayoutSuccessor(Succ)) in INITIALIZE_PASS_DEPENDENCY()
3718 BlockFreq * MBPI->getEdgeProbability(&MBB, Succ); in INITIALIZE_PASS_DEPENDENCY()