| /freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | TailDuplicator.cpp | 118 for (MachineBasicBlock *PredBB : Preds) { in VerifyPHIs() 122 if (PHIBB == PredBB) { in VerifyPHIs() 131 << printMBBReference(*PredBB) << '\n'; in VerifyPHIs() 356 MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB, in processPHI() argument 361 unsigned SrcOpIdx = getPHISrcRegOpIdx(MI, PredBB); in processPHI() 373 addSSAUpdateEntry(DefReg, NewDef, PredBB); in processPHI() 390 MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB, in duplicateInstruction() argument 395 BuildMI(*PredBB, PredBB->end(), PredBB->findDebugLoc(PredBB->begin()), in duplicateInstruction() 401 MachineInstr &NewMI = TII->duplicate(*PredBB, PredBB->end(), *MI); in duplicateInstruction() 417 addSSAUpdateEntry(Reg, NewReg, PredBB); in duplicateInstruction() [all …]
|
| H A D | BranchFolding.cpp | 573 MachineBasicBlock *PredBB, in ProfitableToMerge() argument 611 if ((MBB1 == PredBB || MBB2 == PredBB) && in ProfitableToMerge() 614 unsigned NumTerms = CountTerminators(MBB1 == PredBB ? MBB2 : MBB1, I); in ProfitableToMerge() 659 if (SuccBB && MBB1 != PredBB && MBB2 != PredBB && in ProfitableToMerge() 682 MachineBasicBlock *PredBB) { in ComputeSameTails() argument 695 SuccBB, PredBB, in ComputeSameTails() 717 MachineBasicBlock *PredBB, in RemoveBlocksWithHash() argument 725 if (SuccBB && CurMBB != PredBB) in RemoveBlocksWithHash() 735 bool BranchFolder::CreateCommonTailOnlyBlock(MachineBasicBlock *&PredBB, in CreateCommonTailOnlyBlock() argument 743 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 | 410 for (const MachineBasicBlock *PredBB : MBB.predecessors()) in hasDirtyPred() local 411 if (ReachableByDirty.count(PredBB)) in hasDirtyPred() 569 for (MachineBasicBlock *PredBB : CurRestore->predecessors()) { in checkIfRestoreSplittable() 570 if (!isAnalyzableBB(*TII, *PredBB)) in checkIfRestoreSplittable() 573 if (ReachableByDirty.count(PredBB)) in checkIfRestoreSplittable() 574 DirtyPreds.push_back(PredBB); in checkIfRestoreSplittable() 576 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() 236 (!DT || DT->dominates(GEPI->getParent(), PredBB))) { in translateSubExpr() 252 Value *LHS = translateSubExpr(Inst->getOperand(0), CurBB, PredBB, DT); in translateSubExpr() 288 (!DT || DT->dominates(BO->getParent(), PredBB))) in translateSubExpr() 302 Value *PHITransAddr::translateValue(BasicBlock *CurBB, BasicBlock *PredBB, in translateValue() argument 307 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 | 168 auto *PredBB = IncomingBB; in updatePredecessorProfileMetadata() local 172 BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator()); in updatePredecessorProfileMetadata() 174 return {PredBB, SuccBB}; in updatePredecessorProfileMetadata() 175 Visited.insert(PredBB); in updatePredecessorProfileMetadata() 176 auto *SinglePredBB = PredBB->getSinglePredecessor(); in updatePredecessorProfileMetadata() 185 SuccBB = PredBB; in updatePredecessorProfileMetadata() 186 PredBB = SinglePredBB; in updatePredecessorProfileMetadata() 207 BasicBlock *PredBB = PredOutEdge.first; in updatePredecessorProfileMetadata() local 208 BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator()); in updatePredecessorProfileMetadata() 758 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()->getIterator()); in optimizeDivRem() 302 RemInst->moveBefore(PredBB->getTerminator()->getIterator()); in optimizeDivRem()
|
| H A D | SimpleLoopUnswitch.cpp | 1614 for (BasicBlock *PredBB : predecessors(BB)) { in buildClonedLoops() 1617 if (!UnloopedBlockSet.erase(PredBB)) { in buildClonedLoops() 1619 (BlocksInClonedLoop.count(PredBB) || ExitLoopMap.count(PredBB)) && in buildClonedLoops() 1627 bool Inserted = ExitLoopMap.insert({PredBB, ExitL}).second; in buildClonedLoops() 1632 Worklist.push_back(PredBB); in buildClonedLoops() 2024 for (BasicBlock *PredBB : predecessors(BB)) { in rebuildLoopAfterUnswitch() 2027 if (!UnloopedBlocks.erase(PredBB)) { in rebuildLoopAfterUnswitch() 2028 assert((NewExitLoopBlocks.count(PredBB) || in rebuildLoopAfterUnswitch() 2029 ExitL.contains(LI.getLoopFor(PredBB))) && in rebuildLoopAfterUnswitch() 2037 bool Inserted = NewExitLoopBlocks.insert(PredBB).second; in rebuildLoopAfterUnswitch() [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | PHITransAddr.h | 79 LLVM_ABI Value *translateValue(BasicBlock *CurBB, BasicBlock *PredBB, 90 translateWithInsertion(BasicBlock *CurBB, BasicBlock *PredBB, 102 Value *translateSubExpr(Value *V, BasicBlock *CurBB, BasicBlock *PredBB, 111 BasicBlock *PredBB, const DominatorTree &DT,
|
| H A D | GenericDomTreeUpdaterImpl.h | 402 for (BasicBlockT *PredBB : predecessors(Succ)) { in splitDTCriticalEdges() 403 if (PredBB == Edge.NewBB) in splitDTCriticalEdges() 418 if (NewBBs.contains(PredBB)) { in splitDTCriticalEdges() 419 assert(pred_size(PredBB) == 1 && "A basic block resulting from a " in splitDTCriticalEdges() 422 PredBB = *pred_begin(PredBB); in splitDTCriticalEdges() 424 if (!DT->dominates(SuccDTNode, DT->getNode(PredBB))) { in splitDTCriticalEdges()
|
| H A D | EHUtils.h | 32 for (auto *PredBB : predecessors(BB)) { in computeEHOnlyBlocks() 33 Status PredStatus = GetStatus(PredBB); in computeEHOnlyBlocks()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/XCore/ |
| H A D | XCoreLowerThreadLocal.cpp | 85 BasicBlock *PredBB = PN->getIncomingBlock(I); in replaceConstantExprOp() local 86 if (PredBB->getTerminator()->getNumSuccessors() > 1) in replaceConstantExprOp() 87 PredBB = SplitEdge(PredBB, PN->getParent()); in replaceConstantExprOp() 89 PredBB->getTerminator()->getIterator(); in replaceConstantExprOp() 91 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/lib/Transforms/Utils/ |
| 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() 198 if (!PredecessorWithTwoSuccessors && PredBB->getUniqueSuccessor() != BB) in MergeBlockIntoPredecessor() 222 << PredBB->getName() << "\n"); in MergeBlockIntoPredecessor() 236 DomTreeNode *PredNode = DT->getNode(PredBB); in MergeBlockIntoPredecessor() 252 successors(PredBB)); in MergeBlockIntoPredecessor() 264 Updates.push_back({DominatorTree::Insert, PredBB, SuccOfBB}); in MergeBlockIntoPredecessor() 269 Updates.push_back({DominatorTree::Delete, PredBB, BB}); in MergeBlockIntoPredecessor() [all …]
|
| 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 | BreakCriticalEdges.cpp | 328 for (BasicBlock *PredBB : predecessors(BB)) { in findIBRPredecessor() 329 Instruction *PredTerm = PredBB->getTerminator(); in findIBRPredecessor() 334 IBB = PredBB; in findIBRPredecessor() 338 OtherPreds.push_back(PredBB); in findIBRPredecessor()
|
| H A D | LoopUnrollRuntime.cpp | 156 for (BasicBlock *PredBB : predecessors(PrologExit)) in ConnectProlog() 157 if (PrologLoop->contains(PredBB)) in ConnectProlog() 158 PrologExitPreds.push_back(PredBB); in ConnectProlog() 854 auto *PredBB =PN.getIncomingBlock(i); in UnrollRuntimeLoopRemainder() local 855 if (PredBB == Latch) in UnrollRuntimeLoopRemainder() 858 if (!L->contains(PredBB)) in UnrollRuntimeLoopRemainder() 867 PN.addIncoming(V, cast<BasicBlock>(VMap[PredBB])); in UnrollRuntimeLoopRemainder()
|
| H A D | Local.cpp | 782 BasicBlock *PredBB = DestBB->getSinglePredecessor(); in MergeBasicBlockIntoOnlyPred() local 783 assert(PredBB && "Block doesn't have a single predecessor!"); in MergeBasicBlockIntoOnlyPred() 785 bool ReplaceEntryBB = PredBB->isEntryBlock(); in MergeBasicBlockIntoOnlyPred() 794 Updates.reserve(Updates.size() + 2 * pred_size(PredBB) + 1); in MergeBasicBlockIntoOnlyPred() 795 for (BasicBlock *PredOfPredBB : predecessors(PredBB)) in MergeBasicBlockIntoOnlyPred() 797 if (PredOfPredBB != PredBB) in MergeBasicBlockIntoOnlyPred() 801 for (BasicBlock *PredOfPredBB : predecessors(PredBB)) in MergeBasicBlockIntoOnlyPred() 803 Updates.push_back({DominatorTree::Delete, PredOfPredBB, PredBB}); in MergeBasicBlockIntoOnlyPred() 804 Updates.push_back({DominatorTree::Delete, PredBB, DestBB}); in MergeBasicBlockIntoOnlyPred() 819 PredBB->replaceAllUsesWith(DestBB); in MergeBasicBlockIntoOnlyPred() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/IPO/ |
| H A D | HotColdSplitting.cpp | 518 BasicBlock &PredBB = **PredIt; in create() local 519 bool SinkPostDom = PDT.dominates(&SinkBB, &PredBB); in create() 523 if (SinkPostDom && pred_empty(&PredBB)) { in create() 530 if (!SinkPostDom || !mayExtractBlock(PredBB)) { in create() 538 unsigned PredScore = getEntryPointScore(PredBB, PredIt.getPathLength()); in create() 540 ColdRegion->SuggestedEntryPoint = &PredBB; in create() 544 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/Support/ |
| H A D | GenericLoopInfoImpl.h | 470 BlockT *PredBB = ReverseCFGWorklist.back(); in discoverAndMapSubloop() local 473 LoopT *Subloop = LI->getLoopFor(PredBB); in discoverAndMapSubloop() 475 if (!DomTree.isReachableFromEntry(PredBB)) in discoverAndMapSubloop() 479 LI->changeLoopFor(PredBB, L); in discoverAndMapSubloop() 481 if (PredBB == L->getHeader()) in discoverAndMapSubloop() 485 InvBlockTraits::child_begin(PredBB), in discoverAndMapSubloop() 486 InvBlockTraits::child_end(PredBB)); in discoverAndMapSubloop() 499 PredBB = Subloop->getHeader(); in discoverAndMapSubloop() 504 for (const auto Pred : inverse_children<BlockT *>(PredBB)) { in discoverAndMapSubloop()
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/ |
| H A D | JumpThreading.h | 126 BasicBlock *PredBB); 156 BasicBlock *PredBB, BasicBlock *BB, 182 void updateBlockFreqAndEdgeWeight(BasicBlock *PredBB, BasicBlock *BB,
|