Lines Matching refs:PredBB
233 auto *PredBB = IncomingBB; in updatePredecessorProfileMetadata() local
237 BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator()); in updatePredecessorProfileMetadata()
239 return {PredBB, SuccBB}; in updatePredecessorProfileMetadata()
240 Visited.insert(PredBB); in updatePredecessorProfileMetadata()
241 auto *SinglePredBB = PredBB->getSinglePredecessor(); in updatePredecessorProfileMetadata()
250 SuccBB = PredBB; in updatePredecessorProfileMetadata()
251 PredBB = SinglePredBB; in updatePredecessorProfileMetadata()
272 BasicBlock *PredBB = PredOutEdge.first; in updatePredecessorProfileMetadata() local
273 BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator()); in updatePredecessorProfileMetadata()
827 BasicBlock *PredBB = PN->getIncomingBlock(i); in computeValueKnownInPredecessorsImpl() local
831 RHS = CmpRHS->DoPHITranslation(BB, PredBB); in computeValueKnownInPredecessorsImpl()
833 LHS = CmpLHS->DoPHITranslation(BB, PredBB); in computeValueKnownInPredecessorsImpl()
848 cast<Constant>(RHS), PredBB, BB, in computeValueKnownInPredecessorsImpl()
856 Result.emplace_back(KC, PredBB); in computeValueKnownInPredecessorsImpl()
1368 for (BasicBlock *PredBB : predecessors(LoadBB)) { in simplifyPartiallyRedundantLoad()
1370 if (!PredsScanned.insert(PredBB).second) in simplifyPartiallyRedundantLoad()
1373 BBIt = PredBB->end(); in simplifyPartiallyRedundantLoad()
1384 MemoryLocation Loc(LoadedPtr->DoPHITranslation(LoadBB, PredBB), in simplifyPartiallyRedundantLoad()
1388 PredBB, BBIt, DefMaxInstsToScan, in simplifyPartiallyRedundantLoad()
1393 BasicBlock *SinglePredBB = PredBB; in simplifyPartiallyRedundantLoad()
1407 OneUnavailablePred = PredBB; in simplifyPartiallyRedundantLoad()
1416 AvailablePreds.emplace_back(PredBB, PredAvailable); in simplifyPartiallyRedundantLoad()
1574 BasicBlock *PredBB = BB->getSinglePredecessor(); in evaluateOnPredecessorEdge() local
1575 assert(PredBB && "Expected a single predecessor"); in evaluateOnPredecessorEdge()
1583 if (!I || (I->getParent() != BB && I->getParent() != PredBB)) { in evaluateOnPredecessorEdge()
1584 return LVI->getConstantOnEdge(V, PredPredBB, PredBB, nullptr); in evaluateOnPredecessorEdge()
1589 if (PHI->getParent() == PredBB) in evaluateOnPredecessorEdge()
1807 BasicBlock *PredBB = PN->getIncomingBlock(i); in processBranchOnPHI() local
1808 if (BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator())) in processBranchOnPHI()
1810 PredBBs[0] = PredBB; in processBranchOnPHI()
2057 BasicBlock *PredBB) { in cloneInstructions() argument
2068 NewPN->addIncoming(PN->getIncomingValueForBlock(PredBB), PredBB); in cloneInstructions()
2077 LLVMContext &Context = PredBB->getContext(); in cloneInstructions()
2128 BasicBlock *PredBB = BB->getSinglePredecessor(); in maybethreadThroughTwoBasicBlocks() local
2129 if (!PredBB) in maybethreadThroughTwoBasicBlocks()
2135 BranchInst *PredBBBranch = dyn_cast<BranchInst>(PredBB->getTerminator()); in maybethreadThroughTwoBasicBlocks()
2141 if (PredBB->getSinglePredecessor()) in maybethreadThroughTwoBasicBlocks()
2153 if (llvm::is_contained(successors(PredBB), PredBB)) in maybethreadThroughTwoBasicBlocks()
2157 if (LoopHeaders.count(PredBB)) in maybethreadThroughTwoBasicBlocks()
2161 if (PredBB->isEHPad()) in maybethreadThroughTwoBasicBlocks()
2171 for (BasicBlock *P : predecessors(PredBB)) { in maybethreadThroughTwoBasicBlocks()
2226 TTI, PredBB, PredBB->getTerminator(), BBDupThreshold); in maybethreadThroughTwoBasicBlocks()
2240 threadThroughTwoBasicBlocks(PredPredBB, PredBB, BB, SuccBB); in maybethreadThroughTwoBasicBlocks()
2245 BasicBlock *PredBB, in threadThroughTwoBasicBlocks() argument
2248 LLVM_DEBUG(dbgs() << " Threading through '" << PredBB->getName() << "' and '" in threadThroughTwoBasicBlocks()
2252 BranchInst *PredBBBranch = cast<BranchInst>(PredBB->getTerminator()); in threadThroughTwoBasicBlocks()
2255 BasicBlock::Create(PredBB->getContext(), PredBB->getName() + ".thread", in threadThroughTwoBasicBlocks()
2256 PredBB->getParent(), PredBB); in threadThroughTwoBasicBlocks()
2257 NewBB->moveAfter(PredBB); in threadThroughTwoBasicBlocks()
2262 BPI->getEdgeProbability(PredPredBB, PredBB); in threadThroughTwoBasicBlocks()
2270 cloneInstructions(PredBB->begin(), PredBB->end(), NewBB, PredPredBB); in threadThroughTwoBasicBlocks()
2274 BPI->copyEdgeProbabilities(PredBB, NewBB); in threadThroughTwoBasicBlocks()
2281 if (PredPredTerm->getSuccessor(i) == PredBB) { in threadThroughTwoBasicBlocks()
2282 PredBB->removePredecessor(PredPredBB, true); in threadThroughTwoBasicBlocks()
2286 addPHINodeEntriesForMappedBlock(PredBBBranch->getSuccessor(0), PredBB, NewBB, in threadThroughTwoBasicBlocks()
2288 addPHINodeEntriesForMappedBlock(PredBBBranch->getSuccessor(1), PredBB, NewBB, in threadThroughTwoBasicBlocks()
2295 {DominatorTree::Delete, PredPredBB, PredBB}}); in threadThroughTwoBasicBlocks()
2297 updateSSA(PredBB, NewBB, ValueMapping); in threadThroughTwoBasicBlocks()
2302 SimplifyInstructionsInBlock(PredBB, TLI); in threadThroughTwoBasicBlocks()
2358 BasicBlock *PredBB; in threadEdge() local
2360 PredBB = PredBBs[0]; in threadEdge()
2364 PredBB = splitBlockPreds(BB, PredBBs, ".thr_comm"); in threadEdge()
2368 LLVM_DEBUG(dbgs() << " Threading edge from '" << PredBB->getName() in threadEdge()
2372 LVI->threadEdge(PredBB, BB, SuccBB); in threadEdge()
2377 NewBB->moveAfter(PredBB); in threadEdge()
2382 BFI->getBlockFreq(PredBB) * BPI->getEdgeProbability(PredBB, BB); in threadEdge()
2388 cloneInstructions(BB->begin(), std::prev(BB->end()), NewBB, PredBB); in threadEdge()
2402 Instruction *PredTerm = PredBB->getTerminator(); in threadEdge()
2405 BB->removePredecessor(PredBB, true); in threadEdge()
2411 {DominatorTree::Insert, PredBB, NewBB}, in threadEdge()
2412 {DominatorTree::Delete, PredBB, BB}}); in threadEdge()
2422 updateBlockFreqAndEdgeWeight(PredBB, BB, NewBB, SuccBB); in threadEdge()
2492 void JumpThreadingPass::updateBlockFreqAndEdgeWeight(BasicBlock *PredBB, in updateBlockFreqAndEdgeWeight() argument
2613 BasicBlock *PredBB; in duplicateCondBranchOnPHIIntoPred() local
2615 PredBB = PredBBs[0]; in duplicateCondBranchOnPHIIntoPred()
2619 PredBB = splitBlockPreds(BB, PredBBs, ".thr_comm"); in duplicateCondBranchOnPHIIntoPred()
2621 Updates.push_back({DominatorTree::Delete, PredBB, BB}); in duplicateCondBranchOnPHIIntoPred()
2626 << "' into end of '" << PredBB->getName() in duplicateCondBranchOnPHIIntoPred()
2632 BranchInst *OldPredBranch = dyn_cast<BranchInst>(PredBB->getTerminator()); in duplicateCondBranchOnPHIIntoPred()
2635 BasicBlock *OldPredBB = PredBB; in duplicateCondBranchOnPHIIntoPred()
2636 PredBB = SplitEdge(OldPredBB, BB); in duplicateCondBranchOnPHIIntoPred()
2637 Updates.push_back({DominatorTree::Insert, OldPredBB, PredBB}); in duplicateCondBranchOnPHIIntoPred()
2638 Updates.push_back({DominatorTree::Insert, PredBB, BB}); in duplicateCondBranchOnPHIIntoPred()
2640 OldPredBranch = cast<BranchInst>(PredBB->getTerminator()); in duplicateCondBranchOnPHIIntoPred()
2649 ValueMapping[PN] = PN->getIncomingValueForBlock(PredBB); in duplicateCondBranchOnPHIIntoPred()
2680 PredBB->getInstList().insert(OldPredBranch->getIterator(), New); in duplicateCondBranchOnPHIIntoPred()
2684 Updates.push_back({DominatorTree::Insert, PredBB, SuccBB}); in duplicateCondBranchOnPHIIntoPred()
2691 addPHINodeEntriesForMappedBlock(BBBranch->getSuccessor(0), BB, PredBB, in duplicateCondBranchOnPHIIntoPred()
2693 addPHINodeEntriesForMappedBlock(BBBranch->getSuccessor(1), BB, PredBB, in duplicateCondBranchOnPHIIntoPred()
2696 updateSSA(BB, PredBB, ValueMapping); in duplicateCondBranchOnPHIIntoPred()
2700 BB->removePredecessor(PredBB, true); in duplicateCondBranchOnPHIIntoPred()
2705 BPI->copyEdgeProbabilities(BB, PredBB); in duplicateCondBranchOnPHIIntoPred()