Searched refs:PredBB (Results 1 - 25 of 53) sorted by relevance

123

/freebsd-13-stable/contrib/llvm-project/llvm/lib/CodeGen/
H A DMachineDominators.cpp106 for (MachineBasicBlock *PredBB : Succ->predecessors()) {
107 if (PredBB == Edge.NewBB)
121 if (NewBBs.count(PredBB)) {
122 assert(PredBB->pred_size() == 1 && "A basic block resulting from a "
125 PredBB = *PredBB->pred_begin();
127 if (!DT->dominates(SuccDTNode, DT->getNode(PredBB))) {
H A DTailDuplicator.cpp111 for (MachineBasicBlock *PredBB : Preds) {
115 if (PHIBB == PredBB) {
124 << printMBBReference(*PredBB) << '\n';
345 /// Process PHI node in TailBB by turning it into a copy in PredBB. Remember the
346 /// source register that's contributed by PredBB and update SSA update map.
348 MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB,
353 unsigned SrcOpIdx = getPHISrcRegOpIdx(MI, PredBB);
365 addSSAUpdateEntry(DefReg, NewDef, PredBB);
370 // Remove PredBB from the PHI node.
377 /// Duplicate a TailBB instruction to PredBB an
347 processPHI( MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB, DenseMap<Register, RegSubRegPair> &LocalVRMap, SmallVectorImpl<std::pair<Register, RegSubRegPair>> &Copies, const DenseSet<Register> &RegsUsedByPhi, bool Remove) argument
379 duplicateInstruction( MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB, DenseMap<Register, RegSubRegPair> &LocalVRMap, const DenseSet<Register> &UsedByPhi) argument
791 canTailDuplicate(MachineBasicBlock *TailBB, MachineBasicBlock *PredBB) argument
[all...]
H A DBranchFolding.h137 MachineBasicBlock* PredBB,
164 MachineBasicBlock *PredBB);
169 MachineBasicBlock* PredBB);
173 bool CreateCommonTailOnlyBlock(MachineBasicBlock *&PredBB,
H A DBranchFolding.cpp539 /// PredBB The layout predecessor of SuccBB, if any.
548 MachineBasicBlock *PredBB,
586 if ((MBB1 == PredBB || MBB2 == PredBB) &&
589 unsigned NumTerms = CountTerminators(MBB1 == PredBB ? MBB2 : MBB1, I);
634 if (SuccBB && MBB1 != PredBB && MBB2 != PredBB &&
660 MachineBasicBlock *PredBB) {
673 SuccBB, PredBB,
695 MachineBasicBlock *PredBB) {
544 ProfitableToMerge(MachineBasicBlock *MBB1, MachineBasicBlock *MBB2, unsigned MinCommonTailLength, unsigned &CommonTailLen, MachineBasicBlock::iterator &I1, MachineBasicBlock::iterator &I2, MachineBasicBlock *SuccBB, MachineBasicBlock *PredBB, DenseMap<const MachineBasicBlock *, int> &EHScopeMembership, bool AfterPlacement, MBFIWrapper &MBBFreqInfo, ProfileSummaryInfo *PSI) argument
657 ComputeSameTails(unsigned CurHash, unsigned MinCommonTailLength, MachineBasicBlock *SuccBB, MachineBasicBlock *PredBB) argument
693 RemoveBlocksWithHash(unsigned CurHash, MachineBasicBlock *SuccBB, MachineBasicBlock *PredBB) argument
712 CreateCommonTailOnlyBlock(MachineBasicBlock *&PredBB, MachineBasicBlock *SuccBB, unsigned maxCommonTailLength, unsigned &commonTailIndex) argument
883 TryTailMergeBlocks(MachineBasicBlock *SuccBB, MachineBasicBlock *PredBB, unsigned MinCommonTailLength) argument
1051 MachineBasicBlock *PredBB = &*std::prev(I); local
[all...]
H A DMachineSSAUpdater.cpp166 MachineBasicBlock *PredBB = *PI; local
167 Register PredVal = GetValueAtEndOfBlockInternal(PredBB);
168 PredValues.push_back(std::make_pair(PredBB, PredVal));
/freebsd-13-stable/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DPHITransAddr.h80 /// PredBB. This returns true on failure and sets Addr to null.
81 bool PHITranslateValue(BasicBlock *CurBB, BasicBlock *PredBB,
91 Value *PHITranslateWithInsertion(BasicBlock *CurBB, BasicBlock *PredBB,
103 Value *PHITranslateSubExpr(Value *V, BasicBlock *CurBB, BasicBlock *PredBB,
107 /// version of 'V' for the edge PredBB->CurBB into the end of the PredBB
112 BasicBlock *PredBB, const DominatorTree &DT,
H A DLoopInfoImpl.h428 BlockT *PredBB = ReverseCFGWorklist.back(); local
431 LoopT *Subloop = LI->getLoopFor(PredBB);
433 if (!DomTree.isReachableFromEntry(PredBB))
437 LI->changeLoopFor(PredBB, L);
439 if (PredBB == L->getHeader())
443 InvBlockTraits::child_begin(PredBB),
444 InvBlockTraits::child_end(PredBB));
458 PredBB = Subloop->getHeader();
463 for (const auto Pred : children<Inverse<BlockT *>>(PredBB)) {
H A DLazyValueInfo.h103 /// PredBB to OldSucc to be from PredBB to NewSucc instead.
104 void threadEdge(BasicBlock *PredBB, BasicBlock *OldSucc, BasicBlock *NewSucc);
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Analysis/
H A DPHITransAddr.cpp144 BasicBlock *PredBB,
169 return AddAsInput(PN->getIncomingValueForBlock(PredBB));
189 Value *PHIIn = PHITranslateSubExpr(Cast->getOperand(0), CurBB, PredBB, DT);
207 (!DT || DT->dominates(CastI->getParent(), PredBB)))
218 Value *GEPOp = PHITranslateSubExpr(GEP->getOperand(i), CurBB, PredBB, DT);
244 (!DT || DT->dominates(GEPI->getParent(), PredBB))) {
260 Value *LHS = PHITranslateSubExpr(Inst->getOperand(0), CurBB, PredBB, DT);
296 (!DT || DT->dominates(BO->getParent(), PredBB)))
311 /// PredBB. This returns true on failure and sets Addr to null.
312 bool PHITransAddr::PHITranslateValue(BasicBlock *CurBB, BasicBlock *PredBB, argument
143 PHITranslateSubExpr(Value *V, BasicBlock *CurBB, BasicBlock *PredBB, const DominatorTree *DT) argument
341 PHITranslateWithInsertion(BasicBlock *CurBB, BasicBlock *PredBB, const DominatorTree &DT, SmallVectorImpl<Instruction*> &NewInsts) argument
365 InsertPHITranslatedSubExpr(Value *InVal, BasicBlock *CurBB, BasicBlock *PredBB, const DominatorTree &DT, SmallVectorImpl<Instruction*> &NewInsts) argument
[all...]
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DJumpThreading.cpp182 // [Block PredBB]
232 auto *PredBB = IncomingBB;
236 BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator());
238 return {PredBB, SuccBB};
239 Visited.insert(PredBB);
240 auto *SinglePredBB = PredBB->getSinglePredecessor();
249 SuccBB = PredBB;
250 PredBB = SinglePredBB;
271 BasicBlock *PredBB = PredOutEdge.first;
272 BranchInst *PredBr = dyn_cast<BranchInst>(PredBB
792 BasicBlock *PredBB = PN->getIncomingBlock(i); local
1517 BasicBlock *PredBB = BB->getSinglePredecessor(); local
1746 BasicBlock *PredBB = PN->getIncomingBlock(i); local
1995 CloneInstructions(BasicBlock::iterator BI, BasicBlock::iterator BE, BasicBlock *NewBB, BasicBlock *PredBB) argument
2171 ThreadThroughTwoBasicBlocks(BasicBlock *PredPredBB, BasicBlock *PredBB, BasicBlock *BB, BasicBlock *SuccBB) argument
2281 BasicBlock *PredBB; local
2415 UpdateBlockFreqAndEdgeWeight(BasicBlock *PredBB, BasicBlock *BB, BasicBlock *NewBB, BasicBlock *SuccBB) argument
2536 BasicBlock *PredBB; local
[all...]
H A DSpeculateAroundPHIs.cpp574 for (auto *PredBB : PredSet) {
576 PredBB, ParentBB,
580 LLVM_DEBUG(dbgs() << " Split critical edge from: " << PredBB->getName()
584 assert(PredBB->getSingleSuccessor() == ParentBB &&
586 assert(!isa<InvokeInst>(PredBB->getTerminator()) &&
590 SpecPreds.push_back(PredBB);
651 for (auto *PredBB : SpecPreds)
652 SpeculatedVals.push_back(IncomingValueMap.find(PredBB)->second);
657 auto *PredBB = SpecPreds[PredIdx]; local
658 assert(PredBB
[all...]
H A DSimpleLoopUnswitch.cpp1420 for (BasicBlock *PredBB : predecessors(BB)) {
1423 if (!UnloopedBlockSet.erase(PredBB)) {
1425 (BlocksInClonedLoop.count(PredBB) || ExitLoopMap.count(PredBB)) &&
1433 bool Inserted = ExitLoopMap.insert({PredBB, ExitL}).second;
1438 Worklist.push_back(PredBB);
1824 for (BasicBlock *PredBB : predecessors(BB)) {
1827 if (!UnloopedBlocks.erase(PredBB)) {
1828 assert((NewExitLoopBlocks.count(PredBB) ||
1829 ExitL.contains(LI.getLoopFor(PredBB)))
[all...]
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DVPlanPredicator.h49 /// \p PredBB to \p CurrentBlock.
50 VPValue *getOrCreateNotPredicate(VPBasicBlock *PredBB, VPBasicBlock *CurrBB);
H A DVPlanPredicator.cpp28 // predicate being propagated from PredBB to CurrBB depending on the edge type
30 // i. PredBB is controlled by predicate %BP, and
31 // ii. The edge PredBB->CurrBB is the false edge, controlled by the condition
37 VPValue *VPlanPredicator::getOrCreateNotPredicate(VPBasicBlock *PredBB, argument
39 VPValue *CBV = PredBB->getCondBit();
43 EdgeType ET = getEdgeTypeBetween(PredBB, CurrBB);
47 // CurrBB is the true successor of PredBB - nothing to do here.
52 // CurrBB is the False successor of PredBB - compute not of CBV.
57 // Now AND intermediate value with PredBB's block predicate if it has one.
58 VPValue *BP = PredBB
[all...]
/freebsd-13-stable/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DTailDuplicator.h81 /// Returns true if TailBB can successfully be duplicated into PredBB
82 bool canTailDuplicate(MachineBasicBlock *TailBB, MachineBasicBlock *PredBB);
104 MachineBasicBlock *PredBB,
109 MachineBasicBlock *PredBB,
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Target/XCore/
H A DXCoreLowerThreadLocal.cpp139 BasicBlock *PredBB = PN->getIncomingBlock(I); local
140 if (PredBB->getTerminator()->getNumSuccessors() > 1)
141 PredBB = SplitEdge(PredBB, PN->getParent());
142 Instruction *InsertPos = PredBB->getTerminator();
/freebsd-13-stable/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/
H A DJumpThreading.h119 BasicBlock *PredBB);
145 void ThreadThroughTwoBasicBlocks(BasicBlock *PredPredBB, BasicBlock *PredBB,
169 void UpdateBlockFreqAndEdgeWeight(BasicBlock *PredBB, BasicBlock *BB,
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DBasicBlockUtils.cpp180 BasicBlock *PredBB = BB->getUniquePredecessor();
181 if (!PredBB) return false;
184 if (PredBB == BB) return false;
186 if (PredBB->getTerminator()->isExceptionalTerminator())
190 if (!PredecessorWithTwoSuccessors && PredBB->getUniqueSuccessor() != BB)
193 // Currently only allow PredBB to have two predecessors, one being BB.
199 if (!(PredBB_BI = dyn_cast<BranchInst>(PredBB->getTerminator())))
215 << PredBB->getName() << "\n");
239 // This successor of BB may already have PredBB as a predecessor.
240 if (llvm::find(successors(PredBB), *
[all...]
H A DSSAUpdater.cpp115 BasicBlock *PredBB = SomePhi->getIncomingBlock(i); local
116 Value *PredVal = GetValueAtEndOfBlock(PredBB);
117 PredValues.push_back(std::make_pair(PredBB, PredVal));
128 BasicBlock *PredBB = *PI; local
129 Value *PredVal = GetValueAtEndOfBlock(PredBB);
130 PredValues.push_back(std::make_pair(PredBB, PredVal));
H A DBreakCriticalEdges.cpp351 BasicBlock *PredBB = PN->getIncomingBlock(Pred); local
352 Instruction *PredTerm = PredBB->getTerminator();
357 IBB = PredBB;
361 OtherPreds.push_back(PredBB);
H A DCloneFunction.cpp837 BasicBlock *BB, BasicBlock *PredBB, Instruction *StopAt,
840 assert(count(successors(PredBB), BB) == 1 &&
841 "There must be a single edge between PredBB and BB!");
844 // account for entry from PredBB.
847 ValueMapping[PN] = PN->getIncomingValueForBlock(PredBB);
849 BasicBlock *NewBB = SplitEdge(PredBB, BB);
850 NewBB->setName(PredBB->getName() + ".split");
855 DTU.applyUpdates({{DominatorTree::Delete, PredBB, BB},
856 {DominatorTree::Insert, PredBB, NewBB},
836 DuplicateInstructionsInSplitBetween( BasicBlock *BB, BasicBlock *PredBB, Instruction *StopAt, ValueToValueMapTy &ValueMapping, DomTreeUpdater &DTU) argument
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/ObjCARC/
H A DDependencyAnalysis.cpp243 BasicBlock *PredBB = *PI; local
244 if (Visited.insert(PredBB).second)
245 Worklist.push_back(std::make_pair(PredBB, PredBB->end()));
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/IPO/
H A DBlockExtractor.cpp149 for (auto PredBB : predecessors(LPad)) {
150 if (PredBB->isLandingPad() && PredBB != Parent &&
H A DHotColdSplitting.cpp421 BasicBlock &PredBB = **PredIt; local
422 bool SinkPostDom = PDT.dominates(&SinkBB, &PredBB);
426 if (SinkPostDom && pred_empty(&PredBB)) {
433 if (!SinkPostDom || !mayExtractBlock(PredBB)) {
441 unsigned PredScore = getEntryPointScore(PredBB, PredIt.getPathLength());
443 ColdRegion->SuggestedEntryPoint = &PredBB;
447 addBlockToRegion(&PredBB, PredScore);
/freebsd-13-stable/contrib/llvm-project/llvm/lib/IR/
H A DBasicBlock.cpp274 const BasicBlock *PredBB = *PI; local
277 if (*PI != PredBB)
282 return PredBB;

Completed in 367 milliseconds

123