| /llvm-project-15.0.7/llvm/lib/CodeGen/ |
| H A D | TailDuplicator.cpp | 112 if (PHIBB == PredBB) { in VerifyPHIs() 385 BuildMI(*PredBB, PredBB->end(), PredBB->findDebugLoc(PredBB->begin()), in duplicateInstruction() 391 MachineInstr &NewMI = TII->duplicate(*PredBB, PredBB->end(), *MI); in duplicateInstruction() 726 if (PredBB->hasEHPadSuccessor() || PredBB->mayHaveInlineAsmBr()) in duplicateSimpleBB() 773 TII->removeBranch(*PredBB); in duplicateSimpleBB() 785 TDBBs.push_back(PredBB); in duplicateSimpleBB() 793 if (PredBB->succ_size() > 1) in canTailDuplicate() 842 assert(TailBB != PredBB && in tailDuplicate() 855 else if (PredBB->isLayoutSuccessor(TailBB) && PredBB->canFallThrough()) in tailDuplicate() 864 TDBBs.push_back(PredBB); in tailDuplicate() [all …]
|
| H A D | MachineDominators.cpp | 108 for (MachineBasicBlock *PredBB : Succ->predecessors()) { in applySplitCriticalEdges() 109 if (PredBB == Edge.NewBB) in applySplitCriticalEdges() 123 if (NewBBs.count(PredBB)) { in applySplitCriticalEdges() 124 assert(PredBB->pred_size() == 1 && "A basic block resulting from a " in applySplitCriticalEdges() 127 PredBB = *PredBB->pred_begin(); in applySplitCriticalEdges() 129 if (!DT->dominates(SuccDTNode, DT->getNode(PredBB))) { in applySplitCriticalEdges()
|
| H A D | BranchFolding.cpp | 586 if ((MBB1 == PredBB || MBB2 == PredBB) && in ProfitableToMerge() 634 if (SuccBB && MBB1 != PredBB && MBB2 != PredBB && in ProfitableToMerge() 673 SuccBB, PredBB, in ComputeSameTails() 702 if (SuccBB && CurMBB != PredBB) in RemoveBlocksWithHash() 756 if (PredBB == MBB) in CreateCommonTailOnlyBlock() 757 PredBB = newMBB; in CreateCommonTailOnlyBlock() 895 if (PredBB) in TryTailMergeBlocks() 950 if (MBB == PredBB) { in TryTailMergeBlocks() 1311 if (PredBB->succ_size() == 1) in salvageDebugInfoFromEmptyBlock() 1674 if (PredBB != MBB && !PredBB->canFallThrough() && in OptimizeBlock() [all …]
|
| H A D | BranchFolding.h | 134 MachineBasicBlock* PredBB, 161 MachineBasicBlock *PredBB); 166 MachineBasicBlock* PredBB); 170 bool CreateCommonTailOnlyBlock(MachineBasicBlock *&PredBB,
|
| H A D | MachineSSAUpdater.cpp | 173 for (MachineBasicBlock *PredBB : BB->predecessors()) { in GetValueInMiddleOfBlock() 174 Register PredVal = GetValueAtEndOfBlockInternal(PredBB, ExistingValueOnly); in GetValueInMiddleOfBlock() 175 PredValues.push_back(std::make_pair(PredBB, PredVal)); in GetValueInMiddleOfBlock()
|
| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | PHITransAddr.cpp | 144 BasicBlock *PredBB, in PHITranslateSubExpr() argument 169 return AddAsInput(PN->getIncomingValueForBlock(PredBB)); in PHITranslateSubExpr() 207 (!DT || DT->dominates(CastI->getParent(), PredBB))) in PHITranslateSubExpr() 246 (!DT || DT->dominates(GEPI->getParent(), PredBB))) { in PHITranslateSubExpr() 298 (!DT || DT->dominates(BO->getParent(), PredBB))) in PHITranslateSubExpr() 319 if (DT && DT->isReachableFromEntry(PredBB)) in PHITranslateValue() 329 if (!DT->dominates(Inst->getParent(), PredBB)) in PHITranslateValue() 343 PHITranslateWithInsertion(BasicBlock *CurBB, BasicBlock *PredBB, in PHITranslateWithInsertion() argument 349 Addr = InsertPHITranslatedSubExpr(Addr, CurBB, PredBB, DT, NewInsts); in PHITranslateWithInsertion() 368 BasicBlock *PredBB, const DominatorTree &DT, in InsertPHITranslatedSubExpr() argument [all …]
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Scalar/ |
| H A D | JumpThreading.cpp | 250 SuccBB = PredBB; in updatePredecessorProfileMetadata() 2068 NewPN->addIncoming(PN->getIncomingValueForBlock(PredBB), PredBB); in cloneInstructions() 2129 if (!PredBB) in maybethreadThroughTwoBasicBlocks() 2153 if (llvm::is_contained(successors(PredBB), PredBB)) in maybethreadThroughTwoBasicBlocks() 2226 TTI, PredBB, PredBB->getTerminator(), BBDupThreshold); in maybethreadThroughTwoBasicBlocks() 2255 BasicBlock::Create(PredBB->getContext(), PredBB->getName() + ".thread", in threadThroughTwoBasicBlocks() 2256 PredBB->getParent(), PredBB); in threadThroughTwoBasicBlocks() 2270 cloneInstructions(PredBB->begin(), PredBB->end(), NewBB, PredPredBB); in threadThroughTwoBasicBlocks() 2358 BasicBlock *PredBB; in threadEdge() local 2382 BFI->getBlockFreq(PredBB) * BPI->getEdgeProbability(PredBB, BB); in threadEdge() [all …]
|
| H A D | DivRemPairs.cpp | 242 BasicBlock *PredBB = nullptr; in optimizeDivRem() local 271 PredBB = RemBB->getUniquePredecessor(); in optimizeDivRem() 273 if (PredBB && IsSafeToHoist(RemInst, RemBB) && in optimizeDivRem() 275 all_of(successors(PredBB), in optimizeDivRem() 278 [&](BasicBlock *BB) { return BB == RemBB || BB == PredBB; })) { in optimizeDivRem() 280 DivInst->moveBefore(PredBB->getTerminator()); in optimizeDivRem() 283 RemInst->moveBefore(PredBB->getTerminator()); in optimizeDivRem()
|
| H A D | SimpleLoopUnswitch.cpp | 1523 for (BasicBlock *PredBB : predecessors(BB)) { in buildClonedLoops() 1526 if (!UnloopedBlockSet.erase(PredBB)) { in buildClonedLoops() 1528 (BlocksInClonedLoop.count(PredBB) || ExitLoopMap.count(PredBB)) && in buildClonedLoops() 1541 Worklist.push_back(PredBB); in buildClonedLoops() 1930 for (BasicBlock *PredBB : predecessors(BB)) { in rebuildLoopAfterUnswitch() 1933 if (!UnloopedBlocks.erase(PredBB)) { in rebuildLoopAfterUnswitch() 1934 assert((NewExitLoopBlocks.count(PredBB) || in rebuildLoopAfterUnswitch() 1935 ExitL.contains(LI.getLoopFor(PredBB))) && in rebuildLoopAfterUnswitch() 1948 Worklist.push_back(PredBB); in rebuildLoopAfterUnswitch() 2170 return PredBB == ParentBB || DT.dominates(SuccBB, PredBB); in unswitchNontrivialInvariants() [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/Analysis/ |
| H A D | PHITransAddr.h | 81 bool PHITranslateValue(BasicBlock *CurBB, BasicBlock *PredBB, 91 Value *PHITranslateWithInsertion(BasicBlock *CurBB, BasicBlock *PredBB, 103 Value *PHITranslateSubExpr(Value *V, BasicBlock *CurBB, BasicBlock *PredBB, 112 BasicBlock *PredBB, const DominatorTree &DT,
|
| H A D | LoopInfoImpl.h | 437 BlockT *PredBB = ReverseCFGWorklist.back(); in discoverAndMapSubloop() local 440 LoopT *Subloop = LI->getLoopFor(PredBB); in discoverAndMapSubloop() 442 if (!DomTree.isReachableFromEntry(PredBB)) in discoverAndMapSubloop() 446 LI->changeLoopFor(PredBB, L); in discoverAndMapSubloop() 448 if (PredBB == L->getHeader()) in discoverAndMapSubloop() 452 InvBlockTraits::child_begin(PredBB), in discoverAndMapSubloop() 453 InvBlockTraits::child_end(PredBB)); in discoverAndMapSubloop() 466 PredBB = Subloop->getHeader(); in discoverAndMapSubloop() 471 for (const auto Pred : children<Inverse<BlockT *>>(PredBB)) { in discoverAndMapSubloop()
|
| /llvm-project-15.0.7/llvm/lib/Target/XCore/ |
| H A D | XCoreLowerThreadLocal.cpp | 88 BasicBlock *PredBB = PN->getIncomingBlock(I); in replaceConstantExprOp() local 89 if (PredBB->getTerminator()->getNumSuccessors() > 1) in replaceConstantExprOp() 90 PredBB = SplitEdge(PredBB, PN->getParent()); in replaceConstantExprOp() 91 Instruction *InsertPos = PredBB->getTerminator(); in replaceConstantExprOp()
|
| /llvm-project-15.0.7/bolt/lib/Passes/ |
| H A D | BinaryPasses.cpp | 748 if (BeenOptimized.count(PredBB)) in shouldRewriteBranch() 765 PredBB->getBranchStats(BB); in shouldRewriteBranch() 834 PredBB->dump()); in fixTailCalls() 845 if (!PredBB->isValid()) { in fixTailCalls() 846 assert(PredBB->isSuccessor(BB) && in fixTailCalls() 858 BeenOptimized.insert(PredBB); in fixTailCalls() 873 Count = PredBB->getTakenBranchInfo().Count; in fixTailCalls() 888 PredBB->removeSuccessor(BB); in fixTailCalls() 907 BinaryBasicBlock *PredBB = Entry.first; in fixTailCalls() local 931 PredBB->eraseInstruction(PredBB->findInstruction(UncondBranch)); in fixTailCalls() [all …]
|
| H A D | ReorderAlgorithm.cpp | 287 for (const BinaryBasicBlock *PredBB : DstBB->predecessors()) { in calculateWeight() local 290 if (PredBB == DstBB || PredBB == SrcBB) in calculateWeight() 292 auto BI = PredBB->branch_info_begin(); in calculateWeight() 293 for (const BinaryBasicBlock *SuccBB : PredBB->successors()) { in calculateWeight() 298 assert(BI != PredBB->branch_info_end() && "invalid control flow graph"); in calculateWeight() 372 for (const BinaryBasicBlock *PredBB : DstBB->predecessors()) { in adjustQueue() local 373 if (PredBB == SrcBB) in adjustQueue() 375 auto WI = Weight.find(EdgeTy(PredBB, DstBB, 0)); in adjustQueue()
|
| H A D | LoopInversionPass.cpp | 43 BinaryBasicBlock *PredBB = *BB->pred_begin(); in runOnFunction() local 46 if (SuccBB == PredBB && BB != SuccBB && BBIndex != 0 && SuccBBIndex != 0 && in runOnFunction()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/ObjCARC/ |
| H A D | DependencyAnalysis.cpp | 229 BasicBlock *PredBB = *PI; in findDependencies() local 230 if (Visited.insert(PredBB).second) in findDependencies() 231 Worklist.push_back(std::make_pair(PredBB, PredBB->end())); in findDependencies()
|
| /llvm-project-15.0.7/llvm/include/llvm/CodeGen/ |
| H A D | TailDuplicator.h | 82 bool canTailDuplicate(MachineBasicBlock *TailBB, MachineBasicBlock *PredBB); 104 MachineBasicBlock *PredBB, 109 MachineBasicBlock *PredBB,
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Utils/ |
| H A D | SSAUpdater.cpp | 113 BasicBlock *PredBB = SomePhi->getIncomingBlock(i); in GetValueInMiddleOfBlock() local 114 Value *PredVal = GetValueAtEndOfBlock(PredBB); in GetValueInMiddleOfBlock() 115 PredValues.push_back(std::make_pair(PredBB, PredVal)); in GetValueInMiddleOfBlock() 125 for (BasicBlock *PredBB : predecessors(BB)) { in GetValueInMiddleOfBlock() 126 Value *PredVal = GetValueAtEndOfBlock(PredBB); in GetValueInMiddleOfBlock() 127 PredValues.push_back(std::make_pair(PredBB, PredVal)); in GetValueInMiddleOfBlock()
|
| H A D | BasicBlockUtils.cpp | 186 BasicBlock *PredBB = BB->getUniquePredecessor(); in MergeBlockIntoPredecessor() local 187 if (!PredBB) return false; in MergeBlockIntoPredecessor() 190 if (PredBB == BB) return false; in MergeBlockIntoPredecessor() 193 Instruction *PTI = PredBB->getTerminator(); in MergeBlockIntoPredecessor() 222 << PredBB->getName() << "\n"); in MergeBlockIntoPredecessor() 273 MSSAU->moveAllAfterMergeBlocks(BB, PredBB, Start); in MergeBlockIntoPredecessor() 277 BB->replaceAllUsesWith(PredBB); in MergeBlockIntoPredecessor() 287 PredBB->getInstList().pop_back(); in MergeBlockIntoPredecessor() 290 PredBB->getInstList().splice(PredBB->end(), BB->getInstList()); in MergeBlockIntoPredecessor() 302 if (!PredBB->hasName()) in MergeBlockIntoPredecessor() [all …]
|
| H A D | Local.cpp | 763 bool ReplaceEntryBB = PredBB->isEntryBlock(); in MergeBasicBlockIntoOnlyPred() 775 if (PredOfPredBB != PredBB) in MergeBasicBlockIntoOnlyPred() 797 PredBB->replaceAllUsesWith(DestBB); in MergeBasicBlockIntoOnlyPred() 800 PredBB->getTerminator()->eraseFromParent(); in MergeBasicBlockIntoOnlyPred() 802 new UnreachableInst(PredBB->getContext(), PredBB); in MergeBasicBlockIntoOnlyPred() 807 DestBB->moveAfter(PredBB); in MergeBasicBlockIntoOnlyPred() 810 assert(PredBB->getInstList().size() == 1 && in MergeBasicBlockIntoOnlyPred() 815 DTU->deleteBB(PredBB); in MergeBasicBlockIntoOnlyPred() 1034 PN->addIncoming(Selected, PredBB); in redirectValuesFromPredecessorsToPhi() 1040 BasicBlock *PredBB = BBPreds[i]; in redirectValuesFromPredecessorsToPhi() local [all …]
|
| H A D | BreakCriticalEdges.cpp | 318 for (BasicBlock *PredBB : predecessors(BB)) { in findIBRPredecessor() 319 Instruction *PredTerm = PredBB->getTerminator(); in findIBRPredecessor() 324 IBB = PredBB; in findIBRPredecessor() 328 OtherPreds.push_back(PredBB); in findIBRPredecessor()
|
| H A D | LoopUnrollRuntime.cpp | 145 for (BasicBlock *PredBB : predecessors(PrologExit)) in ConnectProlog() 146 if (PrologLoop->contains(PredBB)) in ConnectProlog() 147 PrologExitPreds.push_back(PredBB); in ConnectProlog() 832 auto *PredBB =PN.getIncomingBlock(i); in UnrollRuntimeLoopRemainder() local 833 if (PredBB == Latch) in UnrollRuntimeLoopRemainder() 836 if (!L->contains(PredBB)) in UnrollRuntimeLoopRemainder() 845 PN.addIncoming(V, cast<BasicBlock>(VMap[PredBB])); in UnrollRuntimeLoopRemainder()
|
| /llvm-project-15.0.7/llvm/include/llvm/Transforms/Scalar/ |
| H A D | JumpThreading.h | 120 BasicBlock *PredBB); 146 void threadThroughTwoBasicBlocks(BasicBlock *PredPredBB, BasicBlock *PredBB, 170 void updateBlockFreqAndEdgeWeight(BasicBlock *PredBB, BasicBlock *BB,
|
| /llvm-project-15.0.7/llvm/lib/Transforms/IPO/ |
| H A D | HotColdSplitting.cpp | 460 BasicBlock &PredBB = **PredIt; in create() local 461 bool SinkPostDom = PDT.dominates(&SinkBB, &PredBB); in create() 465 if (SinkPostDom && pred_empty(&PredBB)) { in create() 472 if (!SinkPostDom || !mayExtractBlock(PredBB)) { in create() 480 unsigned PredScore = getEntryPointScore(PredBB, PredIt.getPathLength()); in create() 482 ColdRegion->SuggestedEntryPoint = &PredBB; in create() 486 addBlockToRegion(&PredBB, PredScore); in create()
|
| H A D | BlockExtractor.cpp | 164 for (auto PredBB : predecessors(LPad)) { in splitLandingPadPreds() local 165 if (PredBB->isLandingPad() && PredBB != Parent && in splitLandingPadPreds()
|