/freebsd-13-stable/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | MachineDominators.cpp | 106 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 D | TailDuplicator.cpp | 111 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 D | BranchFolding.h | 137 MachineBasicBlock* PredBB, 164 MachineBasicBlock *PredBB); 169 MachineBasicBlock* PredBB); 173 bool CreateCommonTailOnlyBlock(MachineBasicBlock *&PredBB,
|
H A D | BranchFolding.cpp | 539 /// 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 D | MachineSSAUpdater.cpp | 166 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 D | PHITransAddr.h | 80 /// 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 D | LoopInfoImpl.h | 428 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 D | LazyValueInfo.h | 103 /// 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 D | PHITransAddr.cpp | 144 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 D | JumpThreading.cpp | 182 // [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 D | SpeculateAroundPHIs.cpp | 574 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 D | SimpleLoopUnswitch.cpp | 1420 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 D | VPlanPredicator.h | 49 /// \p PredBB to \p CurrentBlock. 50 VPValue *getOrCreateNotPredicate(VPBasicBlock *PredBB, VPBasicBlock *CurrBB);
|
H A D | VPlanPredicator.cpp | 28 // 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 D | TailDuplicator.h | 81 /// 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 D | XCoreLowerThreadLocal.cpp | 139 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 D | JumpThreading.h | 119 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 D | BasicBlockUtils.cpp | 180 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 D | SSAUpdater.cpp | 115 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 D | BreakCriticalEdges.cpp | 351 BasicBlock *PredBB = PN->getIncomingBlock(Pred); local 352 Instruction *PredTerm = PredBB->getTerminator(); 357 IBB = PredBB; 361 OtherPreds.push_back(PredBB);
|
H A D | CloneFunction.cpp | 837 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 D | DependencyAnalysis.cpp | 243 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 D | BlockExtractor.cpp | 149 for (auto PredBB : predecessors(LPad)) { 150 if (PredBB->isLandingPad() && PredBB != Parent &&
|
H A D | HotColdSplitting.cpp | 421 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 D | BasicBlock.cpp | 274 const BasicBlock *PredBB = *PI; local 277 if (*PI != PredBB) 282 return PredBB;
|