Home
last modified time | relevance | path

Searched refs:PredBB (Results 1 – 25 of 68) sorted by relevance

123

/llvm-project-15.0.7/llvm/lib/CodeGen/
H A DTailDuplicator.cpp112 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 DMachineDominators.cpp108 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 DBranchFolding.cpp586 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 DBranchFolding.h134 MachineBasicBlock* PredBB,
161 MachineBasicBlock *PredBB);
166 MachineBasicBlock* PredBB);
170 bool CreateCommonTailOnlyBlock(MachineBasicBlock *&PredBB,
H A DMachineSSAUpdater.cpp173 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 DPHITransAddr.cpp144 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 DJumpThreading.cpp250 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 DDivRemPairs.cpp242 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 DSimpleLoopUnswitch.cpp1523 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 DPHITransAddr.h81 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 DLoopInfoImpl.h437 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 DXCoreLowerThreadLocal.cpp88 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 DBinaryPasses.cpp748 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 DReorderAlgorithm.cpp287 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 DLoopInversionPass.cpp43 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 DDependencyAnalysis.cpp229 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 DTailDuplicator.h82 bool canTailDuplicate(MachineBasicBlock *TailBB, MachineBasicBlock *PredBB);
104 MachineBasicBlock *PredBB,
109 MachineBasicBlock *PredBB,
/llvm-project-15.0.7/llvm/lib/Transforms/Utils/
H A DSSAUpdater.cpp113 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 DBasicBlockUtils.cpp186 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 DLocal.cpp763 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 DBreakCriticalEdges.cpp318 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 DLoopUnrollRuntime.cpp145 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 DJumpThreading.h120 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 DHotColdSplitting.cpp460 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 DBlockExtractor.cpp164 for (auto PredBB : predecessors(LPad)) { in splitLandingPadPreds() local
165 if (PredBB->isLandingPad() && PredBB != Parent && in splitLandingPadPreds()

123