Lines Matching refs:PredBB
169 auto *PredBB = IncomingBB; in updatePredecessorProfileMetadata() local
173 BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator()); in updatePredecessorProfileMetadata()
175 return {PredBB, SuccBB}; in updatePredecessorProfileMetadata()
176 Visited.insert(PredBB); in updatePredecessorProfileMetadata()
177 auto *SinglePredBB = PredBB->getSinglePredecessor(); in updatePredecessorProfileMetadata()
186 SuccBB = PredBB; in updatePredecessorProfileMetadata()
187 PredBB = SinglePredBB; in updatePredecessorProfileMetadata()
208 BasicBlock *PredBB = PredOutEdge.first; in updatePredecessorProfileMetadata() local
209 BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator()); in updatePredecessorProfileMetadata()
761 BasicBlock *PredBB = PN->getIncomingBlock(i); in computeValueKnownInPredecessorsImpl() local
765 RHS = CmpRHS->DoPHITranslation(BB, PredBB); in computeValueKnownInPredecessorsImpl()
767 LHS = CmpLHS->DoPHITranslation(BB, PredBB); in computeValueKnownInPredecessorsImpl()
780 Res = LVI->getPredicateOnEdge(Pred, LHS, cast<Constant>(RHS), PredBB, in computeValueKnownInPredecessorsImpl()
785 Result.emplace_back(KC, PredBB); in computeValueKnownInPredecessorsImpl()
1298 for (BasicBlock *PredBB : predecessors(LoadBB)) { in simplifyPartiallyRedundantLoad()
1300 if (!PredsScanned.insert(PredBB).second) in simplifyPartiallyRedundantLoad()
1303 BBIt = PredBB->end(); in simplifyPartiallyRedundantLoad()
1314 MemoryLocation Loc(LoadedPtr->DoPHITranslation(LoadBB, PredBB), in simplifyPartiallyRedundantLoad()
1318 Loc, AccessTy, LoadI->isAtomic(), PredBB, BBIt, DefMaxInstsToScan, in simplifyPartiallyRedundantLoad()
1323 BasicBlock *SinglePredBB = PredBB; in simplifyPartiallyRedundantLoad()
1337 OneUnavailablePred = PredBB; in simplifyPartiallyRedundantLoad()
1346 AvailablePreds.emplace_back(PredBB, PredAvailable); in simplifyPartiallyRedundantLoad()
1503 BasicBlock *PredBB = BB->getSinglePredecessor(); in evaluateOnPredecessorEdge() local
1504 assert(PredBB && "Expected a single predecessor"); in evaluateOnPredecessorEdge()
1512 if (!I || (I->getParent() != BB && I->getParent() != PredBB)) { in evaluateOnPredecessorEdge()
1513 return LVI->getConstantOnEdge(V, PredPredBB, PredBB, nullptr); in evaluateOnPredecessorEdge()
1518 if (PHI->getParent() == PredBB) in evaluateOnPredecessorEdge()
1738 BasicBlock *PredBB = PN->getIncomingBlock(i); in processBranchOnPHI() local
1739 if (BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator())) in processBranchOnPHI()
1741 PredBBs[0] = PredBB; in processBranchOnPHI()
2007 BasicBlock *PredBB) { in cloneInstructions() argument
2061 NewPN->addIncoming(PN->getIncomingValueForBlock(PredBB), PredBB); in cloneInstructions()
2070 LLVMContext &Context = PredBB->getContext(); in cloneInstructions()
2143 BasicBlock *PredBB = BB->getSinglePredecessor(); in maybethreadThroughTwoBasicBlocks() local
2144 if (!PredBB) in maybethreadThroughTwoBasicBlocks()
2150 BranchInst *PredBBBranch = dyn_cast<BranchInst>(PredBB->getTerminator()); in maybethreadThroughTwoBasicBlocks()
2156 if (PredBB->getSinglePredecessor()) in maybethreadThroughTwoBasicBlocks()
2168 if (llvm::is_contained(successors(PredBB), PredBB)) in maybethreadThroughTwoBasicBlocks()
2172 if (LoopHeaders.count(PredBB)) in maybethreadThroughTwoBasicBlocks()
2176 if (PredBB->isEHPad()) in maybethreadThroughTwoBasicBlocks()
2187 for (BasicBlock *P : predecessors(PredBB)) { in maybethreadThroughTwoBasicBlocks()
2242 TTI, PredBB, PredBB->getTerminator(), BBDupThreshold); in maybethreadThroughTwoBasicBlocks()
2256 threadThroughTwoBasicBlocks(PredPredBB, PredBB, BB, SuccBB); in maybethreadThroughTwoBasicBlocks()
2261 BasicBlock *PredBB, in threadThroughTwoBasicBlocks() argument
2264 LLVM_DEBUG(dbgs() << " Threading through '" << PredBB->getName() << "' and '" in threadThroughTwoBasicBlocks()
2273 BranchInst *PredBBBranch = cast<BranchInst>(PredBB->getTerminator()); in threadThroughTwoBasicBlocks()
2276 BasicBlock::Create(PredBB->getContext(), PredBB->getName() + ".thread", in threadThroughTwoBasicBlocks()
2277 PredBB->getParent(), PredBB); in threadThroughTwoBasicBlocks()
2278 NewBB->moveAfter(PredBB); in threadThroughTwoBasicBlocks()
2284 BPI->getEdgeProbability(PredPredBB, PredBB); in threadThroughTwoBasicBlocks()
2292 cloneInstructions(ValueMapping, PredBB->begin(), PredBB->end(), NewBB, in threadThroughTwoBasicBlocks()
2297 BPI->copyEdgeProbabilities(PredBB, NewBB); in threadThroughTwoBasicBlocks()
2304 if (PredPredTerm->getSuccessor(i) == PredBB) { in threadThroughTwoBasicBlocks()
2305 PredBB->removePredecessor(PredPredBB, true); in threadThroughTwoBasicBlocks()
2309 addPHINodeEntriesForMappedBlock(PredBBBranch->getSuccessor(0), PredBB, NewBB, in threadThroughTwoBasicBlocks()
2311 addPHINodeEntriesForMappedBlock(PredBBBranch->getSuccessor(1), PredBB, NewBB, in threadThroughTwoBasicBlocks()
2318 {DominatorTree::Delete, PredPredBB, PredBB}}); in threadThroughTwoBasicBlocks()
2320 updateSSA(PredBB, NewBB, ValueMapping); in threadThroughTwoBasicBlocks()
2325 SimplifyInstructionsInBlock(PredBB, TLI); in threadThroughTwoBasicBlocks()
2386 BasicBlock *PredBB; in threadEdge() local
2388 PredBB = PredBBs[0]; in threadEdge()
2392 PredBB = splitBlockPreds(BB, PredBBs, ".thr_comm"); in threadEdge()
2396 LLVM_DEBUG(dbgs() << " Threading edge from '" << PredBB->getName() in threadEdge()
2400 LVI->threadEdge(PredBB, BB, SuccBB); in threadEdge()
2405 NewBB->moveAfter(PredBB); in threadEdge()
2411 BFI->getBlockFreq(PredBB) * BPI->getEdgeProbability(PredBB, BB); in threadEdge()
2418 PredBB); in threadEdge()
2432 Instruction *PredTerm = PredBB->getTerminator(); in threadEdge()
2435 BB->removePredecessor(PredBB, true); in threadEdge()
2441 {DominatorTree::Insert, PredBB, NewBB}, in threadEdge()
2442 {DominatorTree::Delete, PredBB, BB}}); in threadEdge()
2452 updateBlockFreqAndEdgeWeight(PredBB, BB, NewBB, SuccBB, BFI, BPI, HasProfile); in threadEdge()
2516 void JumpThreadingPass::updateBlockFreqAndEdgeWeight(BasicBlock *PredBB, in updateBlockFreqAndEdgeWeight() argument
2641 BasicBlock *PredBB; in duplicateCondBranchOnPHIIntoPred() local
2643 PredBB = PredBBs[0]; in duplicateCondBranchOnPHIIntoPred()
2647 PredBB = splitBlockPreds(BB, PredBBs, ".thr_comm"); in duplicateCondBranchOnPHIIntoPred()
2649 Updates.push_back({DominatorTree::Delete, PredBB, BB}); in duplicateCondBranchOnPHIIntoPred()
2654 << "' into end of '" << PredBB->getName() in duplicateCondBranchOnPHIIntoPred()
2660 BranchInst *OldPredBranch = dyn_cast<BranchInst>(PredBB->getTerminator()); in duplicateCondBranchOnPHIIntoPred()
2663 BasicBlock *OldPredBB = PredBB; in duplicateCondBranchOnPHIIntoPred()
2664 PredBB = SplitEdge(OldPredBB, BB); in duplicateCondBranchOnPHIIntoPred()
2665 Updates.push_back({DominatorTree::Insert, OldPredBB, PredBB}); in duplicateCondBranchOnPHIIntoPred()
2666 Updates.push_back({DominatorTree::Insert, PredBB, BB}); in duplicateCondBranchOnPHIIntoPred()
2668 OldPredBranch = cast<BranchInst>(PredBB->getTerminator()); in duplicateCondBranchOnPHIIntoPred()
2677 ValueMapping[PN] = PN->getIncomingValueForBlock(PredBB); in duplicateCondBranchOnPHIIntoPred()
2682 New->insertInto(PredBB, OldPredBranch->getIterator()); in duplicateCondBranchOnPHIIntoPred()
2720 Updates.push_back({DominatorTree::Insert, PredBB, SuccBB}); in duplicateCondBranchOnPHIIntoPred()
2727 addPHINodeEntriesForMappedBlock(BBBranch->getSuccessor(0), BB, PredBB, in duplicateCondBranchOnPHIIntoPred()
2729 addPHINodeEntriesForMappedBlock(BBBranch->getSuccessor(1), BB, PredBB, in duplicateCondBranchOnPHIIntoPred()
2732 updateSSA(BB, PredBB, ValueMapping); in duplicateCondBranchOnPHIIntoPred()
2736 BB->removePredecessor(PredBB, true); in duplicateCondBranchOnPHIIntoPred()
2741 BPI->copyEdgeProbabilities(BB, PredBB); in duplicateCondBranchOnPHIIntoPred()