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.cpp118 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 DBranchFolding.cpp573 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 DBranchFolding.h137 MachineBasicBlock* PredBB,
164 MachineBasicBlock *PredBB);
169 MachineBasicBlock *PredBB,
174 bool CreateCommonTailOnlyBlock(MachineBasicBlock *&PredBB,
H A DShrinkWrap.cpp410 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 DMachineSSAUpdater.cpp168 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 DPHITransAddr.cpp131 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 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.cpp168 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 DDivRemPairs.cpp241 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 DSimpleLoopUnswitch.cpp1614 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 DPHITransAddr.h79 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 DGenericDomTreeUpdaterImpl.h402 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 DEHUtils.h32 for (auto *PredBB : predecessors(BB)) { in computeEHOnlyBlocks()
33 Status PredStatus = GetStatus(PredBB); in computeEHOnlyBlocks()
/freebsd/contrib/llvm-project/llvm/lib/Target/XCore/
H A DXCoreLowerThreadLocal.cpp85 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 DDependencyAnalysis.cpp227 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 DTailDuplicator.h81 bool canTailDuplicate(MachineBasicBlock *TailBB, MachineBasicBlock *PredBB);
103 MachineBasicBlock *PredBB,
108 MachineBasicBlock *PredBB,
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
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()
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 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 DBreakCriticalEdges.cpp328 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 DLoopUnrollRuntime.cpp156 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 DLocal.cpp782 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 DHotColdSplitting.cpp518 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 DBlockExtractor.cpp109 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 DGenericLoopInfoImpl.h470 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 DJumpThreading.h126 BasicBlock *PredBB);
156 BasicBlock *PredBB, BasicBlock *BB,
182 void updateBlockFreqAndEdgeWeight(BasicBlock *PredBB, BasicBlock *BB,

123