/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | TailDuplicator.cpp | 112 if (PHIBB == PredBB) { in VerifyPHIs() 387 BuildMI(*PredBB, PredBB->end(), PredBB->findDebugLoc(PredBB->begin()), in duplicateInstruction() 393 MachineInstr &NewMI = TII->duplicate(*PredBB, PredBB->end(), *MI); in duplicateInstruction() 730 if (PredBB->hasEHPadSuccessor() || PredBB->mayHaveInlineAsmBr()) in duplicateSimpleBB() 777 TII->removeBranch(*PredBB); in duplicateSimpleBB() 789 TDBBs.push_back(PredBB); in duplicateSimpleBB() 797 if (PredBB->succ_size() > 1) in canTailDuplicate() 855 assert(TailBB != PredBB && in tailDuplicate() 868 else if (PredBB->isLayoutSuccessor(TailBB) && PredBB->canFallThrough()) in tailDuplicate() 877 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 | 580 if ((MBB1 == PredBB || MBB2 == PredBB) && in ProfitableToMerge() 628 if (SuccBB && MBB1 != PredBB && MBB2 != PredBB && in ProfitableToMerge() 667 SuccBB, PredBB, in ComputeSameTails() 696 if (SuccBB && CurMBB != PredBB) in RemoveBlocksWithHash() 750 if (PredBB == MBB) in CreateCommonTailOnlyBlock() 751 PredBB = newMBB; in CreateCommonTailOnlyBlock() 897 if (PredBB) in TryTailMergeBlocks() 952 if (MBB == PredBB) { in TryTailMergeBlocks() 1313 if (PredBB->succ_size() == 1) in salvageDebugInfoFromEmptyBlock() 1694 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 | ShrinkWrap.cpp | 403 for (const MachineBasicBlock *PredBB : MBB.predecessors()) in hasDirtyPred() local 404 if (ReachableByDirty.count(PredBB)) in hasDirtyPred() 564 for (MachineBasicBlock *PredBB : CurRestore->predecessors()) { in checkIfRestoreSplittable() 565 if (!isAnalyzableBB(*TII, *PredBB)) in checkIfRestoreSplittable() 568 if (ReachableByDirty.count(PredBB)) in checkIfRestoreSplittable() 569 DirtyPreds.push_back(PredBB); in checkIfRestoreSplittable() 571 CleanPreds.push_back(PredBB); in checkIfRestoreSplittable()
|
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()
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | PHITransAddr.cpp | 130 BasicBlock *PredBB, in translateSubExpr() argument 155 return addAsInput(PN->getIncomingValueForBlock(PredBB)); in translateSubExpr() 193 (!DT || DT->dominates(CastI->getParent(), PredBB))) in translateSubExpr() 204 Value *GEPOp = translateSubExpr(Op, CurBB, PredBB, DT); in translateSubExpr() 232 (!DT || DT->dominates(GEPI->getParent(), PredBB))) { in translateSubExpr() 284 (!DT || DT->dominates(BO->getParent(), PredBB))) in translateSubExpr() 303 if (DT && DT->isReachableFromEntry(PredBB)) in translateValue() 304 Addr = translateSubExpr(Addr, CurBB, PredBB, DT); in translateValue() 312 if (!DT->dominates(Inst->getParent(), PredBB)) in translateValue() 349 Value *InVal, BasicBlock *CurBB, BasicBlock *PredBB, in insertTranslatedSubExpr() argument [all …]
|
H A D | LoopNestAnalysis.cpp | 304 const BasicBlock *PredBB = From; in skipEmptyBlockUntil() local 308 PredBB = BB; in skipEmptyBlockUntil() 312 return (BB == End) ? *End : *PredBB; in skipEmptyBlockUntil()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | JumpThreading.cpp | 186 SuccBB = PredBB; in updatePredecessorProfileMetadata() 2072 NewPN->addIncoming(PN->getIncomingValueForBlock(PredBB), PredBB); in cloneInstructions() 2155 if (!PredBB) in maybethreadThroughTwoBasicBlocks() 2179 if (llvm::is_contained(successors(PredBB), PredBB)) in maybethreadThroughTwoBasicBlocks() 2252 TTI, PredBB, PredBB->getTerminator(), BBDupThreshold); in maybethreadThroughTwoBasicBlocks() 2286 BasicBlock::Create(PredBB->getContext(), PredBB->getName() + ".thread", in threadThroughTwoBasicBlocks() 2287 PredBB->getParent(), PredBB); in threadThroughTwoBasicBlocks() 2302 cloneInstructions(PredBB->begin(), PredBB->end(), NewBB, PredPredBB); in threadThroughTwoBasicBlocks() 2395 BasicBlock *PredBB; in threadEdge() local 2420 BFI->getBlockFreq(PredBB) * BPI->getEdgeProbability(PredBB, BB); in threadEdge() [all …]
|
H A D | DivRemPairs.cpp | 240 BasicBlock *PredBB = nullptr; in optimizeDivRem() local 268 PredBB = RemBB->getUniquePredecessor(); in optimizeDivRem() 286 PredBB = RemPredBB; in optimizeDivRem() 290 if (PredBB && !isa<CatchSwitchInst>(PredBB->getTerminator()) && in optimizeDivRem() 291 isGuaranteedToTransferExecutionToSuccessor(PredBB->getTerminator()) && in optimizeDivRem() 293 all_of(successors(PredBB), in optimizeDivRem() 296 [&](BasicBlock *BB) { return BB == RemBB || BB == PredBB; })) { in optimizeDivRem() 298 DivInst->moveBefore(PredBB->getTerminator()); in optimizeDivRem() 301 RemInst->moveBefore(PredBB->getTerminator()); in optimizeDivRem()
|
H A D | TLSVariableHoist.cpp | 176 for (BasicBlock *PredBB : predecessors(Header)) in getNearestLoopDomInst() 177 Dom = DT->findNearestCommonDominator(Dom, PredBB); in getNearestLoopDomInst()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | PHITransAddr.h | 78 Value *translateValue(BasicBlock *CurBB, BasicBlock *PredBB, 88 Value *translateWithInsertion(BasicBlock *CurBB, BasicBlock *PredBB, 100 Value *translateSubExpr(Value *V, BasicBlock *CurBB, BasicBlock *PredBB, 109 BasicBlock *PredBB, const DominatorTree &DT,
|
H A D | EHUtils.h | 34 for (auto *PredBB : predecessors(BB)) { in computeEHOnlyBlocks() 35 Status PredStatus = GetStatus(PredBB); in computeEHOnlyBlocks()
|
/freebsd/contrib/llvm-project/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()
|
/freebsd/contrib/llvm-project/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()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | TailDuplicator.h | 82 bool canTailDuplicate(MachineBasicBlock *TailBB, MachineBasicBlock *PredBB); 104 MachineBasicBlock *PredBB, 109 MachineBasicBlock *PredBB,
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Support/ |
H A D | GenericLoopInfoImpl.h | 458 BlockT *PredBB = ReverseCFGWorklist.back(); in discoverAndMapSubloop() local 461 LoopT *Subloop = LI->getLoopFor(PredBB); in discoverAndMapSubloop() 463 if (!DomTree.isReachableFromEntry(PredBB)) in discoverAndMapSubloop() 467 LI->changeLoopFor(PredBB, L); in discoverAndMapSubloop() 469 if (PredBB == L->getHeader()) in discoverAndMapSubloop() 473 InvBlockTraits::child_begin(PredBB), in discoverAndMapSubloop() 474 InvBlockTraits::child_end(PredBB)); in discoverAndMapSubloop() 487 PredBB = Subloop->getHeader(); in discoverAndMapSubloop() 492 for (const auto Pred : inverse_children<BlockT *>(PredBB)) { in discoverAndMapSubloop()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | SSAUpdater.cpp | 114 BasicBlock *PredBB = SomePhi->getIncomingBlock(i); in GetValueInMiddleOfBlock() local 115 Value *PredVal = GetValueAtEndOfBlock(PredBB); in GetValueInMiddleOfBlock() 116 PredValues.push_back(std::make_pair(PredBB, PredVal)); in GetValueInMiddleOfBlock() 126 for (BasicBlock *PredBB : predecessors(BB)) { in GetValueInMiddleOfBlock() 127 Value *PredVal = GetValueAtEndOfBlock(PredBB); in GetValueInMiddleOfBlock() 128 PredValues.push_back(std::make_pair(PredBB, PredVal)); in GetValueInMiddleOfBlock()
|
H A D | BasicBlockUtils.cpp | 189 BasicBlock *PredBB = BB->getUniquePredecessor(); in MergeBlockIntoPredecessor() local 190 if (!PredBB) return false; in MergeBlockIntoPredecessor() 193 if (PredBB == BB) return false; in MergeBlockIntoPredecessor() 196 Instruction *PTI = PredBB->getTerminator(); in MergeBlockIntoPredecessor() 225 << PredBB->getName() << "\n"); in MergeBlockIntoPredecessor() 239 DomTreeNode *PredNode = DT->getNode(PredBB); in MergeBlockIntoPredecessor() 290 BB->replaceAllUsesWith(PredBB); in MergeBlockIntoPredecessor() 300 PredBB->back().eraseFromParent(); in MergeBlockIntoPredecessor() 303 BB->back().moveBeforePreserving(*PredBB, PredBB->end()); in MergeBlockIntoPredecessor() 315 if (!PredBB->hasName()) in MergeBlockIntoPredecessor() [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 | Local.cpp | 791 if (PredOfPredBB != PredBB) in MergeBasicBlockIntoOnlyPred() 813 PredBB->replaceAllUsesWith(DestBB); in MergeBasicBlockIntoOnlyPred() 818 new UnreachableInst(PredBB->getContext(), PredBB); in MergeBasicBlockIntoOnlyPred() 823 DestBB->moveAfter(PredBB); in MergeBasicBlockIntoOnlyPred() 826 assert(PredBB->size() == 1 && in MergeBasicBlockIntoOnlyPred() 831 DTU->deleteBB(PredBB); in MergeBasicBlockIntoOnlyPred() 1076 if (PredBB == CommonPred) in redirectValuesFromPredecessorsToPhi() 1085 PN->addIncoming(Selected, PredBB); in redirectValuesFromPredecessorsToPhi() 1094 BasicBlock *PredBB = BBPreds[i]; in redirectValuesFromPredecessorsToPhi() local 1096 if (PredBB == CommonPred) in redirectValuesFromPredecessorsToPhi() [all …]
|
H A D | LoopUnrollRuntime.cpp | 157 for (BasicBlock *PredBB : predecessors(PrologExit)) in ConnectProlog() 158 if (PrologLoop->contains(PredBB)) in ConnectProlog() 159 PrologExitPreds.push_back(PredBB); in ConnectProlog() 850 auto *PredBB =PN.getIncomingBlock(i); in UnrollRuntimeLoopRemainder() local 851 if (PredBB == Latch) in UnrollRuntimeLoopRemainder() 854 if (!L->contains(PredBB)) in UnrollRuntimeLoopRemainder() 863 PN.addIncoming(V, cast<BasicBlock>(VMap[PredBB])); in UnrollRuntimeLoopRemainder()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/IPO/ |
H A D | BlockExtractor.cpp | 109 for (auto *PredBB : predecessors(LPad)) { in splitLandingPadPreds() local 110 if (PredBB->isLandingPad() && PredBB != Parent && in splitLandingPadPreds()
|
H A D | HotColdSplitting.cpp | 501 BasicBlock &PredBB = **PredIt; in create() local 502 bool SinkPostDom = PDT.dominates(&SinkBB, &PredBB); in create() 506 if (SinkPostDom && pred_empty(&PredBB)) { in create() 513 if (!SinkPostDom || !mayExtractBlock(PredBB)) { in create() 521 unsigned PredScore = getEntryPointScore(PredBB, PredIt.getPathLength()); in create() 523 ColdRegion->SuggestedEntryPoint = &PredBB; in create() 527 addBlockToRegion(&PredBB, PredScore); in create()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/ |
H A D | JumpThreading.h | 121 BasicBlock *PredBB); 147 void threadThroughTwoBasicBlocks(BasicBlock *PredPredBB, BasicBlock *PredBB, 171 void updateBlockFreqAndEdgeWeight(BasicBlock *PredBB, BasicBlock *BB,
|