| /openbsd-src/gnu/llvm/llvm/lib/CodeGen/ |
| H A D | TailDuplicator.cpp | 108 for (MachineBasicBlock *PredBB : Preds) { in VerifyPHIs() 112 if (PHIBB == PredBB) { in VerifyPHIs() 121 << printMBBReference(*PredBB) << '\n'; in VerifyPHIs() 348 MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB, in processPHI() argument 353 unsigned SrcOpIdx = getPHISrcRegOpIdx(MI, PredBB); in processPHI() 365 addSSAUpdateEntry(DefReg, NewDef, PredBB); in processPHI() 382 MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB, in duplicateInstruction() argument 387 BuildMI(*PredBB, PredBB->end(), PredBB->findDebugLoc(PredBB->begin()), in duplicateInstruction() 393 MachineInstr &NewMI = TII->duplicate(*PredBB, PredBB->end(), *MI); in duplicateInstruction() 408 addSSAUpdateEntry(Reg, NewReg, PredBB); in duplicateInstruction() [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 | 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 702 if (SuccBB && CurMBB != PredBB) in RemoveBlocksWithHash() 712 bool BranchFolder::CreateCommonTailOnlyBlock(MachineBasicBlock *&PredBB, in CreateCommonTailOnlyBlock() argument 720 if (SameTails[i].getBlock() == PredBB) { in CreateCommonTailOnlyBlock() [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()
|
| /openbsd-src/gnu/llvm/llvm/lib/Analysis/ |
| H A D | PHITransAddr.cpp | 144 BasicBlock *PredBB, in PHITranslateSubExpr() argument 169 return AddAsInput(PN->getIncomingValueForBlock(PredBB)); in PHITranslateSubExpr() 189 Value *PHIIn = PHITranslateSubExpr(Cast->getOperand(0), CurBB, PredBB, DT); in PHITranslateSubExpr() 207 (!DT || DT->dominates(CastI->getParent(), PredBB))) in PHITranslateSubExpr() 218 Value *GEPOp = PHITranslateSubExpr(GEP->getOperand(i), CurBB, PredBB, DT); in PHITranslateSubExpr() 246 (!DT || DT->dominates(GEPI->getParent(), PredBB))) { in PHITranslateSubExpr() 262 Value *LHS = PHITranslateSubExpr(Inst->getOperand(0), CurBB, PredBB, DT); in PHITranslateSubExpr() 298 (!DT || DT->dominates(BO->getParent(), PredBB))) in PHITranslateSubExpr() 314 bool PHITransAddr::PHITranslateValue(BasicBlock *CurBB, BasicBlock *PredBB, in PHITranslateValue() argument 319 if (DT && DT->isReachableFromEntry(PredBB)) in PHITranslateValue() [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()
|
| /openbsd-src/gnu/llvm/llvm/lib/Transforms/Scalar/ |
| H A D | JumpThreading.cpp | 238 auto *PredBB = IncomingBB; in updatePredecessorProfileMetadata() local 242 BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator()); in updatePredecessorProfileMetadata() 244 return {PredBB, SuccBB}; in updatePredecessorProfileMetadata() 245 Visited.insert(PredBB); in updatePredecessorProfileMetadata() 246 auto *SinglePredBB = PredBB->getSinglePredecessor(); in updatePredecessorProfileMetadata() 255 SuccBB = PredBB; in updatePredecessorProfileMetadata() 256 PredBB = SinglePredBB; in updatePredecessorProfileMetadata() 277 BasicBlock *PredBB = PredOutEdge.first; in updatePredecessorProfileMetadata() local 278 BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator()); in updatePredecessorProfileMetadata() 850 BasicBlock *PredBB = PN->getIncomingBlock(i); in computeValueKnownInPredecessorsImpl() local [all …]
|
| H A D | DivRemPairs.cpp | 243 BasicBlock *PredBB = nullptr; in optimizeDivRem() local 271 PredBB = RemBB->getUniquePredecessor(); in optimizeDivRem() 289 PredBB = RemPredBB; in optimizeDivRem() 293 if (PredBB && !isa<CatchSwitchInst>(PredBB->getTerminator()) && in optimizeDivRem() 294 isGuaranteedToTransferExecutionToSuccessor(PredBB->getTerminator()) && in optimizeDivRem() 296 all_of(successors(PredBB), in optimizeDivRem() 299 [&](BasicBlock *BB) { return BB == RemBB || BB == PredBB; })) { in optimizeDivRem() 301 DivInst->moveBefore(PredBB->getTerminator()); in optimizeDivRem() 304 RemInst->moveBefore(PredBB->getTerminator()); in optimizeDivRem()
|
| H A D | SimpleLoopUnswitch.cpp | 1545 for (BasicBlock *PredBB : predecessors(BB)) { in buildClonedLoops() 1548 if (!UnloopedBlockSet.erase(PredBB)) { in buildClonedLoops() 1550 (BlocksInClonedLoop.count(PredBB) || ExitLoopMap.count(PredBB)) && in buildClonedLoops() 1558 bool Inserted = ExitLoopMap.insert({PredBB, ExitL}).second; in buildClonedLoops() 1563 Worklist.push_back(PredBB); in buildClonedLoops() 1956 for (BasicBlock *PredBB : predecessors(BB)) { in rebuildLoopAfterUnswitch() 1959 if (!UnloopedBlocks.erase(PredBB)) { in rebuildLoopAfterUnswitch() 1960 assert((NewExitLoopBlocks.count(PredBB) || in rebuildLoopAfterUnswitch() 1961 ExitL.contains(LI.getLoopFor(PredBB))) && in rebuildLoopAfterUnswitch() 1969 bool Inserted = NewExitLoopBlocks.insert(PredBB).second; in rebuildLoopAfterUnswitch() [all …]
|
| H A D | TLSVariableHoist.cpp | 177 for (BasicBlock *PredBB : predecessors(Header)) in getNearestLoopDomInst() 178 Dom = DT->findNearestCommonDominator(Dom, PredBB); in getNearestLoopDomInst()
|
| /openbsd-src/gnu/llvm/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 | 449 BlockT *PredBB = ReverseCFGWorklist.back(); in discoverAndMapSubloop() local 452 LoopT *Subloop = LI->getLoopFor(PredBB); in discoverAndMapSubloop() 454 if (!DomTree.isReachableFromEntry(PredBB)) in discoverAndMapSubloop() 458 LI->changeLoopFor(PredBB, L); in discoverAndMapSubloop() 460 if (PredBB == L->getHeader()) in discoverAndMapSubloop() 464 InvBlockTraits::child_begin(PredBB), in discoverAndMapSubloop() 465 InvBlockTraits::child_end(PredBB)); in discoverAndMapSubloop() 478 PredBB = Subloop->getHeader(); in discoverAndMapSubloop() 483 for (const auto Pred : children<Inverse<BlockT *>>(PredBB)) { in discoverAndMapSubloop()
|
| /openbsd-src/gnu/llvm/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()
|
| /openbsd-src/gnu/llvm/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()
|
| /openbsd-src/gnu/llvm/llvm/include/llvm/CodeGen/ |
| H A D | TailDuplicator.h | 82 bool canTailDuplicate(MachineBasicBlock *TailBB, MachineBasicBlock *PredBB); 104 MachineBasicBlock *PredBB, 109 MachineBasicBlock *PredBB,
|
| /openbsd-src/gnu/llvm/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 | 188 BasicBlock *PredBB = BB->getUniquePredecessor(); in MergeBlockIntoPredecessor() local 189 if (!PredBB) return false; in MergeBlockIntoPredecessor() 192 if (PredBB == BB) return false; in MergeBlockIntoPredecessor() 195 Instruction *PTI = PredBB->getTerminator(); in MergeBlockIntoPredecessor() 200 if (!PredecessorWithTwoSuccessors && PredBB->getUniqueSuccessor() != BB) in MergeBlockIntoPredecessor() 224 << PredBB->getName() << "\n"); in MergeBlockIntoPredecessor() 238 DomTreeNode *PredNode = DT->getNode(PredBB); in MergeBlockIntoPredecessor() 253 SmallPtrSet<BasicBlock *, 2> SuccsOfPredBB(succ_begin(PredBB), in MergeBlockIntoPredecessor() 254 succ_end(PredBB)); in MergeBlockIntoPredecessor() 266 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 | Local.cpp | 777 BasicBlock *PredBB = DestBB->getSinglePredecessor(); in MergeBasicBlockIntoOnlyPred() local 778 assert(PredBB && "Block doesn't have a single predecessor!"); in MergeBasicBlockIntoOnlyPred() 780 bool ReplaceEntryBB = PredBB->isEntryBlock(); in MergeBasicBlockIntoOnlyPred() 789 Updates.reserve(Updates.size() + 2 * pred_size(PredBB) + 1); in MergeBasicBlockIntoOnlyPred() 790 for (BasicBlock *PredOfPredBB : predecessors(PredBB)) in MergeBasicBlockIntoOnlyPred() 792 if (PredOfPredBB != PredBB) in MergeBasicBlockIntoOnlyPred() 796 for (BasicBlock *PredOfPredBB : predecessors(PredBB)) in MergeBasicBlockIntoOnlyPred() 798 Updates.push_back({DominatorTree::Delete, PredOfPredBB, PredBB}); in MergeBasicBlockIntoOnlyPred() 799 Updates.push_back({DominatorTree::Delete, PredBB, DestBB}); in MergeBasicBlockIntoOnlyPred() 814 PredBB->replaceAllUsesWith(DestBB); in MergeBasicBlockIntoOnlyPred() [all …]
|
| H A D | LoopUnrollRuntime.cpp | 146 for (BasicBlock *PredBB : predecessors(PrologExit)) in ConnectProlog() 147 if (PrologLoop->contains(PredBB)) in ConnectProlog() 148 PrologExitPreds.push_back(PredBB); in ConnectProlog() 830 auto *PredBB =PN.getIncomingBlock(i); in UnrollRuntimeLoopRemainder() local 831 if (PredBB == Latch) in UnrollRuntimeLoopRemainder() 834 if (!L->contains(PredBB)) in UnrollRuntimeLoopRemainder() 843 PN.addIncoming(V, cast<BasicBlock>(VMap[PredBB])); in UnrollRuntimeLoopRemainder()
|
| H A D | CloneFunction.cpp | 1040 BasicBlock *BB, BasicBlock *PredBB, Instruction *StopAt, in DuplicateInstructionsInSplitBetween() argument 1043 assert(count(successors(PredBB), BB) == 1 && in DuplicateInstructionsInSplitBetween() 1050 ValueMapping[PN] = PN->getIncomingValueForBlock(PredBB); in DuplicateInstructionsInSplitBetween() 1052 BasicBlock *NewBB = SplitEdge(PredBB, BB); in DuplicateInstructionsInSplitBetween() 1053 NewBB->setName(PredBB->getName() + ".split"); in DuplicateInstructionsInSplitBetween() 1058 DTU.applyUpdates({{DominatorTree::Delete, PredBB, BB}, in DuplicateInstructionsInSplitBetween() 1059 {DominatorTree::Insert, PredBB, NewBB}, in DuplicateInstructionsInSplitBetween()
|
| /openbsd-src/gnu/llvm/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 | 111 for (auto *PredBB : predecessors(LPad)) { in splitLandingPadPreds() local 112 if (PredBB->isLandingPad() && PredBB != Parent && in splitLandingPadPreds()
|
| /openbsd-src/gnu/llvm/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,
|