/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | TailDuplicator.cpp | 119 for (MachineBasicBlock *PredBB : Preds) { in VerifyPHIs() 123 if (PHIBB == PredBB) { in VerifyPHIs() 132 << printMBBReference(*PredBB) << '\n'; in VerifyPHIs() 357 MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB, in processPHI() argument 362 unsigned SrcOpIdx = getPHISrcRegOpIdx(MI, PredBB); in processPHI() 374 addSSAUpdateEntry(DefReg, NewDef, PredBB); in processPHI() 391 MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB, in duplicateInstruction() argument 396 BuildMI(*PredBB, PredBB->end(), PredBB->findDebugLoc(PredBB->begin()), in duplicateInstruction() 402 MachineInstr &NewMI = TII->duplicate(*PredBB, PredBB->end(), *MI); in duplicateInstruction() 417 addSSAUpdateEntry(Reg, NewReg, PredBB); in duplicateInstruction() [all …]
|
H A D | MachineDominators.cpp | 144 for (MachineBasicBlock *PredBB : Succ->predecessors()) { in applySplitCriticalEdges() 145 if (PredBB == Edge.NewBB) in applySplitCriticalEdges() 159 if (NewBBs.count(PredBB)) { in applySplitCriticalEdges() 160 assert(PredBB->pred_size() == 1 && "A basic block resulting from a " in applySplitCriticalEdges() 163 PredBB = *PredBB->pred_begin(); in applySplitCriticalEdges() 165 if (!Base::dominates(SuccDTNode, Base::getNode(PredBB))) { in applySplitCriticalEdges()
|
H A D | BranchFolding.cpp | 548 MachineBasicBlock *PredBB, in ProfitableToMerge() argument 586 if ((MBB1 == PredBB || MBB2 == PredBB) && in ProfitableToMerge() 589 unsigned NumTerms = CountTerminators(MBB1 == PredBB ? MBB2 : MBB1, I); in ProfitableToMerge() 634 if (SuccBB && MBB1 != PredBB && MBB2 != PredBB && in ProfitableToMerge() 660 MachineBasicBlock *PredBB) { in ComputeSameTails() argument 673 SuccBB, PredBB, in ComputeSameTails() 695 MachineBasicBlock *PredBB, in RemoveBlocksWithHash() argument 703 if (SuccBB && CurMBB != PredBB) in RemoveBlocksWithHash() 713 bool BranchFolder::CreateCommonTailOnlyBlock(MachineBasicBlock *&PredBB, in CreateCommonTailOnlyBlock() argument 721 if (SameTails[i].getBlock() == PredBB) { in CreateCommonTailOnlyBlock() [all …]
|
H A D | BranchFolding.h | 137 MachineBasicBlock* PredBB, 164 MachineBasicBlock *PredBB); 169 MachineBasicBlock *PredBB, 174 bool CreateCommonTailOnlyBlock(MachineBasicBlock *&PredBB,
|
H A D | ShrinkWrap.cpp | 405 for (const MachineBasicBlock *PredBB : MBB.predecessors()) in hasDirtyPred() local 406 if (ReachableByDirty.count(PredBB)) in hasDirtyPred() 566 for (MachineBasicBlock *PredBB : CurRestore->predecessors()) { in checkIfRestoreSplittable() 567 if (!isAnalyzableBB(*TII, *PredBB)) in checkIfRestoreSplittable() 570 if (ReachableByDirty.count(PredBB)) in checkIfRestoreSplittable() 571 DirtyPreds.push_back(PredBB); in checkIfRestoreSplittable() 573 CleanPreds.push_back(PredBB); in checkIfRestoreSplittable()
|
H A D | MachineSSAUpdater.cpp | 168 for (MachineBasicBlock *PredBB : BB->predecessors()) { in GetValueInMiddleOfBlock() 169 Register PredVal = GetValueAtEndOfBlockInternal(PredBB, ExistingValueOnly); in GetValueInMiddleOfBlock() 170 PredValues.push_back(std::make_pair(PredBB, PredVal)); in GetValueInMiddleOfBlock()
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | PHITransAddr.cpp | 131 BasicBlock *PredBB, in translateSubExpr() argument 156 return addAsInput(PN->getIncomingValueForBlock(PredBB)); in translateSubExpr() 174 Value *PHIIn = translateSubExpr(Cast->getOperand(0), CurBB, PredBB, DT); in translateSubExpr() 194 (!DT || DT->dominates(CastI->getParent(), PredBB))) in translateSubExpr() 205 Value *GEPOp = translateSubExpr(Op, CurBB, PredBB, DT); in translateSubExpr() 233 (!DT || DT->dominates(GEPI->getParent(), PredBB))) { in translateSubExpr() 249 Value *LHS = translateSubExpr(Inst->getOperand(0), CurBB, PredBB, DT); in translateSubExpr() 285 (!DT || DT->dominates(BO->getParent(), PredBB))) in translateSubExpr() 299 Value *PHITransAddr::translateValue(BasicBlock *CurBB, BasicBlock *PredBB, in translateValue() argument 304 if (DT && DT->isReachableFromEntry(PredBB)) in translateValue() [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 | 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 [all …]
|
H A D | DivRemPairs.cpp | 241 BasicBlock *PredBB = nullptr; in optimizeDivRem() local 269 PredBB = RemBB->getUniquePredecessor(); in optimizeDivRem() 287 PredBB = RemPredBB; in optimizeDivRem() 291 if (PredBB && !isa<CatchSwitchInst>(PredBB->getTerminator()) && in optimizeDivRem() 292 isGuaranteedToTransferExecutionToSuccessor(PredBB->getTerminator()) && in optimizeDivRem() 294 all_of(successors(PredBB), in optimizeDivRem() 297 [&](BasicBlock *BB) { return BB == RemBB || BB == PredBB; })) { in optimizeDivRem() 299 DivInst->moveBefore(PredBB->getTerminator()); in optimizeDivRem() 302 RemInst->moveBefore(PredBB->getTerminator()); in optimizeDivRem()
|
/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() 92 PredBB->getTerminator()->getIterator(); in replaceConstantExprOp() 94 NewInst->insertBefore(*PredBB, InsertPos); in replaceConstantExprOp()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/ObjCARC/ |
H A D | DependencyAnalysis.cpp | 227 for (BasicBlock *PredBB : predecessors(LocalStartBB)) in findDependencies() 228 if (Visited.insert(PredBB).second) in findDependencies() 229 Worklist.push_back(std::make_pair(PredBB, PredBB->end())); in findDependencies()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | TailDuplicator.h | 81 bool canTailDuplicate(MachineBasicBlock *TailBB, MachineBasicBlock *PredBB); 103 MachineBasicBlock *PredBB, 108 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() 201 if (!PredecessorWithTwoSuccessors && PredBB->getUniqueSuccessor() != BB) in MergeBlockIntoPredecessor() 225 << PredBB->getName() << "\n"); in MergeBlockIntoPredecessor() 239 DomTreeNode *PredNode = DT->getNode(PredBB); in MergeBlockIntoPredecessor() 254 SmallPtrSet<BasicBlock *, 2> SuccsOfPredBB(succ_begin(PredBB), in MergeBlockIntoPredecessor() 255 succ_end(PredBB)); in MergeBlockIntoPredecessor() 267 Updates.push_back({DominatorTree::Insert, PredBB, SuccOfBB}); 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 | 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()
|
H A D | Local.cpp | 783 BasicBlock *PredBB = DestBB->getSinglePredecessor(); in MergeBasicBlockIntoOnlyPred() local 784 assert(PredBB && "Block doesn't have a single predecessor!"); in MergeBasicBlockIntoOnlyPred() 786 bool ReplaceEntryBB = PredBB->isEntryBlock(); in MergeBasicBlockIntoOnlyPred() 795 Updates.reserve(Updates.size() + 2 * pred_size(PredBB) + 1); in MergeBasicBlockIntoOnlyPred() 796 for (BasicBlock *PredOfPredBB : predecessors(PredBB)) in MergeBasicBlockIntoOnlyPred() 798 if (PredOfPredBB != PredBB) in MergeBasicBlockIntoOnlyPred() 802 for (BasicBlock *PredOfPredBB : predecessors(PredBB)) in MergeBasicBlockIntoOnlyPred() 804 Updates.push_back({DominatorTree::Delete, PredOfPredBB, PredBB}); in MergeBasicBlockIntoOnlyPred() 805 Updates.push_back({DominatorTree::Delete, PredBB, DestBB}); in MergeBasicBlockIntoOnlyPred() 820 PredBB->replaceAllUsesWith(DestBB); in MergeBasicBlockIntoOnlyPred() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/IPO/ |
H A D | HotColdSplitting.cpp | 519 BasicBlock &PredBB = **PredIt; in create() local 520 bool SinkPostDom = PDT.dominates(&SinkBB, &PredBB); in create() 524 if (SinkPostDom && pred_empty(&PredBB)) { in create() 531 if (!SinkPostDom || !mayExtractBlock(PredBB)) { in create() 539 unsigned PredScore = getEntryPointScore(PredBB, PredIt.getPathLength()); in create() 541 ColdRegion->SuggestedEntryPoint = &PredBB; in create() 545 addBlockToRegion(&PredBB, PredScore); in create()
|
H A D | BlockExtractor.cpp | 109 for (auto *PredBB : predecessors(LPad)) { in splitLandingPadPreds() local 110 if (PredBB->isLandingPad() && PredBB != Parent && in splitLandingPadPreds()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/ |
H A D | JumpThreading.h | 121 BasicBlock *NewBB, BasicBlock *PredBB); 147 void threadThroughTwoBasicBlocks(BasicBlock *PredPredBB, BasicBlock *PredBB, 171 void updateBlockFreqAndEdgeWeight(BasicBlock *PredBB, BasicBlock *BB,
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
H A D | VPlan.cpp | 423 BasicBlock *PredBB = CFG.VPBB2IRBB[PredVPBB]; in createEmptyBasicBlock() local 425 assert(PredBB && "Predecessor basic-block not found building successor."); in createEmptyBasicBlock() 426 auto *PredBBTerminator = PredBB->getTerminator(); in createEmptyBasicBlock() 427 LLVM_DEBUG(dbgs() << "LV: draw edge from" << PredBB->getName() << '\n'); in createEmptyBasicBlock() 435 auto *Br = BranchInst::Create(NewBB, PredBB); in createEmptyBasicBlock() 447 CFG.DTU.applyUpdates({{DominatorTree::Insert, PredBB, NewBB}}); in createEmptyBasicBlock() 466 BasicBlock *PredBB = State->CFG.VPBB2IRBB[PredVPBB]; in execute() local 467 assert(PredBB && "Predecessor basic-block not found building successor."); in execute() 468 LLVM_DEBUG(dbgs() << "LV: draw edge from" << PredBB->getName() << '\n'); in execute() 470 auto *PredBBTerminator = PredBB->getTerminator(); in execute() [all …]
|