Home
last modified time | relevance | path

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

123

/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DTailDuplicator.cpp112 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 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.cpp580 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 DBranchFolding.h134 MachineBasicBlock* PredBB,
161 MachineBasicBlock *PredBB);
166 MachineBasicBlock* PredBB);
170 bool CreateCommonTailOnlyBlock(MachineBasicBlock *&PredBB,
H A DShrinkWrap.cpp403 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 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()
/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DPHITransAddr.cpp130 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 DLoopNestAnalysis.cpp304 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 DJumpThreading.cpp186 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 DDivRemPairs.cpp240 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 DTLSVariableHoist.cpp176 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 DPHITransAddr.h78 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 DEHUtils.h34 for (auto *PredBB : predecessors(BB)) { in computeEHOnlyBlocks()
35 Status PredStatus = GetStatus(PredBB); in computeEHOnlyBlocks()
/freebsd/contrib/llvm-project/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()
/freebsd/contrib/llvm-project/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()
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DTailDuplicator.h82 bool canTailDuplicate(MachineBasicBlock *TailBB, MachineBasicBlock *PredBB);
104 MachineBasicBlock *PredBB,
109 MachineBasicBlock *PredBB,
/freebsd/contrib/llvm-project/llvm/include/llvm/Support/
H A DGenericLoopInfoImpl.h458 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 DSSAUpdater.cpp114 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 DBasicBlockUtils.cpp189 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 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 DLocal.cpp791 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 DLoopUnrollRuntime.cpp157 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 DBlockExtractor.cpp109 for (auto *PredBB : predecessors(LPad)) { in splitLandingPadPreds() local
110 if (PredBB->isLandingPad() && PredBB != Parent && in splitLandingPadPreds()
H A DHotColdSplitting.cpp501 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 DJumpThreading.h121 BasicBlock *PredBB);
147 void threadThroughTwoBasicBlocks(BasicBlock *PredPredBB, BasicBlock *PredBB,
171 void updateBlockFreqAndEdgeWeight(BasicBlock *PredBB, BasicBlock *BB,

123