Lines Matching refs:PredBB
242 auto *PredBB = IncomingBB; in updatePredecessorProfileMetadata() local
246 BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator()); in updatePredecessorProfileMetadata()
248 return {PredBB, SuccBB}; in updatePredecessorProfileMetadata()
249 Visited.insert(PredBB); in updatePredecessorProfileMetadata()
250 auto *SinglePredBB = PredBB->getSinglePredecessor(); in updatePredecessorProfileMetadata()
259 SuccBB = PredBB; in updatePredecessorProfileMetadata()
260 PredBB = SinglePredBB; in updatePredecessorProfileMetadata()
281 BasicBlock *PredBB = PredOutEdge.first; in updatePredecessorProfileMetadata() local
282 BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator()); in updatePredecessorProfileMetadata()
834 BasicBlock *PredBB = PN->getIncomingBlock(i); in computeValueKnownInPredecessorsImpl() local
838 RHS = CmpRHS->DoPHITranslation(BB, PredBB); in computeValueKnownInPredecessorsImpl()
840 LHS = CmpLHS->DoPHITranslation(BB, PredBB); in computeValueKnownInPredecessorsImpl()
855 cast<Constant>(RHS), PredBB, BB, in computeValueKnownInPredecessorsImpl()
863 Result.emplace_back(KC, PredBB); in computeValueKnownInPredecessorsImpl()
1379 for (BasicBlock *PredBB : predecessors(LoadBB)) { in simplifyPartiallyRedundantLoad()
1381 if (!PredsScanned.insert(PredBB).second) in simplifyPartiallyRedundantLoad()
1384 BBIt = PredBB->end(); in simplifyPartiallyRedundantLoad()
1395 MemoryLocation Loc(LoadedPtr->DoPHITranslation(LoadBB, PredBB), in simplifyPartiallyRedundantLoad()
1399 PredBB, BBIt, DefMaxInstsToScan, in simplifyPartiallyRedundantLoad()
1404 BasicBlock *SinglePredBB = PredBB; in simplifyPartiallyRedundantLoad()
1418 OneUnavailablePred = PredBB; in simplifyPartiallyRedundantLoad()
1427 AvailablePreds.emplace_back(PredBB, PredAvailable); in simplifyPartiallyRedundantLoad()
1589 BasicBlock *PredBB = BB->getSinglePredecessor(); in evaluateOnPredecessorEdge() local
1590 assert(PredBB && "Expected a single predecessor"); in evaluateOnPredecessorEdge()
1598 if (!I || (I->getParent() != BB && I->getParent() != PredBB)) { in evaluateOnPredecessorEdge()
1599 return LVI->getConstantOnEdge(V, PredPredBB, PredBB, nullptr); in evaluateOnPredecessorEdge()
1604 if (PHI->getParent() == PredBB) in evaluateOnPredecessorEdge()
1824 BasicBlock *PredBB = PN->getIncomingBlock(i); in processBranchOnPHI() local
1825 if (BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator())) in processBranchOnPHI()
1827 PredBBs[0] = PredBB; in processBranchOnPHI()
2075 BasicBlock *PredBB) { in cloneInstructions() argument
2086 NewPN->addIncoming(PN->getIncomingValueForBlock(PredBB), PredBB); in cloneInstructions()
2095 LLVMContext &Context = PredBB->getContext(); in cloneInstructions()
2146 BasicBlock *PredBB = BB->getSinglePredecessor(); in maybethreadThroughTwoBasicBlocks() local
2147 if (!PredBB) in maybethreadThroughTwoBasicBlocks()
2153 BranchInst *PredBBBranch = dyn_cast<BranchInst>(PredBB->getTerminator()); in maybethreadThroughTwoBasicBlocks()
2159 if (PredBB->getSinglePredecessor()) in maybethreadThroughTwoBasicBlocks()
2171 if (llvm::is_contained(successors(PredBB), PredBB)) in maybethreadThroughTwoBasicBlocks()
2175 if (LoopHeaders.count(PredBB)) in maybethreadThroughTwoBasicBlocks()
2179 if (PredBB->isEHPad()) in maybethreadThroughTwoBasicBlocks()
2189 for (BasicBlock *P : predecessors(PredBB)) { in maybethreadThroughTwoBasicBlocks()
2241 PredBB, PredBB->getTerminator(), BBDupThreshold); in maybethreadThroughTwoBasicBlocks()
2255 threadThroughTwoBasicBlocks(PredPredBB, PredBB, BB, SuccBB); in maybethreadThroughTwoBasicBlocks()
2260 BasicBlock *PredBB, in threadThroughTwoBasicBlocks() argument
2263 LLVM_DEBUG(dbgs() << " Threading through '" << PredBB->getName() << "' and '" in threadThroughTwoBasicBlocks()
2267 BranchInst *PredBBBranch = cast<BranchInst>(PredBB->getTerminator()); in threadThroughTwoBasicBlocks()
2270 BasicBlock::Create(PredBB->getContext(), PredBB->getName() + ".thread", in threadThroughTwoBasicBlocks()
2271 PredBB->getParent(), PredBB); in threadThroughTwoBasicBlocks()
2272 NewBB->moveAfter(PredBB); in threadThroughTwoBasicBlocks()
2277 BPI->getEdgeProbability(PredPredBB, PredBB); in threadThroughTwoBasicBlocks()
2285 cloneInstructions(PredBB->begin(), PredBB->end(), NewBB, PredPredBB); in threadThroughTwoBasicBlocks()
2289 BPI->copyEdgeProbabilities(PredBB, NewBB); in threadThroughTwoBasicBlocks()
2296 if (PredPredTerm->getSuccessor(i) == PredBB) { in threadThroughTwoBasicBlocks()
2297 PredBB->removePredecessor(PredPredBB, true); in threadThroughTwoBasicBlocks()
2301 addPHINodeEntriesForMappedBlock(PredBBBranch->getSuccessor(0), PredBB, NewBB, in threadThroughTwoBasicBlocks()
2303 addPHINodeEntriesForMappedBlock(PredBBBranch->getSuccessor(1), PredBB, NewBB, in threadThroughTwoBasicBlocks()
2310 {DominatorTree::Delete, PredPredBB, PredBB}}); in threadThroughTwoBasicBlocks()
2312 updateSSA(PredBB, NewBB, ValueMapping); in threadThroughTwoBasicBlocks()
2317 SimplifyInstructionsInBlock(PredBB, TLI); in threadThroughTwoBasicBlocks()
2373 BasicBlock *PredBB; in threadEdge() local
2375 PredBB = PredBBs[0]; in threadEdge()
2379 PredBB = splitBlockPreds(BB, PredBBs, ".thr_comm"); in threadEdge()
2383 LLVM_DEBUG(dbgs() << " Threading edge from '" << PredBB->getName() in threadEdge()
2387 LVI->threadEdge(PredBB, BB, SuccBB); in threadEdge()
2392 NewBB->moveAfter(PredBB); in threadEdge()
2397 BFI->getBlockFreq(PredBB) * BPI->getEdgeProbability(PredBB, BB); in threadEdge()
2403 cloneInstructions(BB->begin(), std::prev(BB->end()), NewBB, PredBB); in threadEdge()
2417 Instruction *PredTerm = PredBB->getTerminator(); in threadEdge()
2420 BB->removePredecessor(PredBB, true); in threadEdge()
2426 {DominatorTree::Insert, PredBB, NewBB}, in threadEdge()
2427 {DominatorTree::Delete, PredBB, BB}}); in threadEdge()
2437 updateBlockFreqAndEdgeWeight(PredBB, BB, NewBB, SuccBB); in threadEdge()
2507 void JumpThreadingPass::updateBlockFreqAndEdgeWeight(BasicBlock *PredBB, in updateBlockFreqAndEdgeWeight() argument
2628 BasicBlock *PredBB; in duplicateCondBranchOnPHIIntoPred() local
2630 PredBB = PredBBs[0]; in duplicateCondBranchOnPHIIntoPred()
2634 PredBB = splitBlockPreds(BB, PredBBs, ".thr_comm"); in duplicateCondBranchOnPHIIntoPred()
2636 Updates.push_back({DominatorTree::Delete, PredBB, BB}); in duplicateCondBranchOnPHIIntoPred()
2641 << "' into end of '" << PredBB->getName() in duplicateCondBranchOnPHIIntoPred()
2647 BranchInst *OldPredBranch = dyn_cast<BranchInst>(PredBB->getTerminator()); in duplicateCondBranchOnPHIIntoPred()
2650 BasicBlock *OldPredBB = PredBB; in duplicateCondBranchOnPHIIntoPred()
2651 PredBB = SplitEdge(OldPredBB, BB); in duplicateCondBranchOnPHIIntoPred()
2652 Updates.push_back({DominatorTree::Insert, OldPredBB, PredBB}); in duplicateCondBranchOnPHIIntoPred()
2653 Updates.push_back({DominatorTree::Insert, PredBB, BB}); in duplicateCondBranchOnPHIIntoPred()
2655 OldPredBranch = cast<BranchInst>(PredBB->getTerminator()); in duplicateCondBranchOnPHIIntoPred()
2664 ValueMapping[PN] = PN->getIncomingValueForBlock(PredBB); in duplicateCondBranchOnPHIIntoPred()
2695 PredBB->getInstList().insert(OldPredBranch->getIterator(), New); in duplicateCondBranchOnPHIIntoPred()
2699 Updates.push_back({DominatorTree::Insert, PredBB, SuccBB}); in duplicateCondBranchOnPHIIntoPred()
2706 addPHINodeEntriesForMappedBlock(BBBranch->getSuccessor(0), BB, PredBB, in duplicateCondBranchOnPHIIntoPred()
2708 addPHINodeEntriesForMappedBlock(BBBranch->getSuccessor(1), BB, PredBB, in duplicateCondBranchOnPHIIntoPred()
2711 updateSSA(BB, PredBB, ValueMapping); in duplicateCondBranchOnPHIIntoPred()
2715 BB->removePredecessor(PredBB, true); in duplicateCondBranchOnPHIIntoPred()
2720 BPI->copyEdgeProbabilities(BB, PredBB); in duplicateCondBranchOnPHIIntoPred()