/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | LCSSA.cpp | 71 const SmallVectorImpl<BasicBlock *> &ExitBlocks) { 72 return is_contained(ExitBlocks, BB); 86 // Cache the Loop ExitBlocks across this loop. We expect to get a lot of 102 const SmallVectorImpl<BasicBlock *> &ExitBlocks = LoopExitBlocks[L]; local 104 if (ExitBlocks.empty()) 147 for (BasicBlock *ExitBB : ExitBlocks) { 202 if (isa<PHINode>(UserBB->begin()) && isExitBlock(UserBB, ExitBlocks)) { 277 Loop &L, const DominatorTree &DT, SmallVector<BasicBlock *, 8> &ExitBlocks, 283 for (BasicBlock *BB : ExitBlocks) 331 SmallVector<BasicBlock *, 8> ExitBlocks; local 70 isExitBlock(BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &ExitBlocks) argument 276 computeBlocksDominatingExits( Loop &L, const DominatorTree &DT, SmallVector<BasicBlock *, 8> &ExitBlocks, SmallSetVector<BasicBlock *, 8> &BlocksDominatingExits) argument [all...] |
H A D | LoopUtils.cpp | 745 SmallVector<BasicBlock *, 4> ExitBlocks; local 746 L->getUniqueNonLatchExitBlocks(ExitBlocks); 747 if (any_of(ExitBlocks, [](const BasicBlock *EB) { 1243 SmallVector<BasicBlock *, 8> ExitBlocks; local 1244 L->getUniqueExitBlocks(ExitBlocks); 1245 if (ExitBlocks.size() != 1 || ExitingBlocks.size() != 1) 1248 BasicBlock *ExitBlock = ExitBlocks[0]; 1294 SmallVector<BasicBlock*, 8> ExitBlocks; local 1295 L->getUniqueExitBlocks(ExitBlocks); 1301 for (BasicBlock *ExitBB : ExitBlocks) { [all...] |
H A D | LoopUnroll.cpp | 366 SmallVector<BasicBlock *, 4> ExitBlocks; local 367 L->getExitBlocks(ExitBlocks); 377 any_of(ExitBlocks, [](const BasicBlock *BB) {
|
H A D | CodeExtractor.cpp | 1569 SmallPtrSet<BasicBlock *, 1> ExitBlocks; local 1579 ExitBlocks.insert(*SI); 1583 NumExitBlocks = ExitBlocks.size(); 1587 severSplitPHINodesOfExits(ExitBlocks); 1697 for (BasicBlock *ExitBB : ExitBlocks)
|
/freebsd-13-stable/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | MemorySSAUpdater.h | 108 ArrayRef<BasicBlock *> ExitBlocks, 117 void updateExitBlocksForClonedLoop(ArrayRef<BasicBlock *> ExitBlocks, 121 ArrayRef<BasicBlock *> ExitBlocks, 289 void privateUpdateExitBlocksForClonedLoop(ArrayRef<BasicBlock *> ExitBlocks,
|
H A D | LoopInfoImpl.h | 62 SmallVectorImpl<BlockT *> &ExitBlocks) const { 68 ExitBlocks.push_back(Succ); 76 SmallVector<BlockT *, 8> ExitBlocks; local 77 getExitBlocks(ExitBlocks); 78 if (ExitBlocks.size() == 1) 79 return ExitBlocks[0]; 101 SmallVectorImpl<BlockT *> &ExitBlocks, 110 ExitBlocks.push_back(Successor); 115 SmallVectorImpl<BlockT *> &ExitBlocks) const { 116 getUniqueExitBlocksHelper(this, ExitBlocks, 100 getUniqueExitBlocksHelper(const LoopT *L, SmallVectorImpl<BlockT *> &ExitBlocks, PredicateT Pred) argument [all...] |
H A D | LoopInfo.h | 271 void getExitBlocks(SmallVectorImpl<BlockT *> &ExitBlocks) const; 283 void getUniqueExitBlocks(SmallVectorImpl<BlockT *> &ExitBlocks) const; 287 /// non Latch predecessor in a loop it will be added to ExitBlocks. 289 void getUniqueNonLatchExitBlocks(SmallVectorImpl<BlockT *> &ExitBlocks) const;
|
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/IPO/ |
H A D | LoopExtractor.cpp | 165 SmallVector<BasicBlock *, 8> ExitBlocks; local 166 TLL->getExitBlocks(ExitBlocks); 167 for (auto *ExitBlock : ExitBlocks)
|
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | LoopUnswitch.cpp | 242 const SmallVectorImpl<BasicBlock *> &ExitBlocks); 1193 Loop *L, const SmallVectorImpl<BasicBlock *> &ExitBlocks) { 1195 for (unsigned I = 0, E = ExitBlocks.size(); I != E; ++I) { 1196 BasicBlock *ExitBlock = ExitBlocks[I]; 1238 SmallVector<BasicBlock*, 8> ExitBlocks; local 1239 L->getUniqueExitBlocks(ExitBlocks); 1243 splitExitEdges(L, ExitBlocks); 1246 ExitBlocks.clear(); 1247 L->getUniqueExitBlocks(ExitBlocks); 1250 LoopBlocks.insert(LoopBlocks.end(), ExitBlocks 1192 splitExitEdges( Loop *L, const SmallVectorImpl<BasicBlock *> &ExitBlocks) argument [all...] |
H A D | SimpleLoopUnswitch.cpp | 1005 ArrayRef<BasicBlock *> ExitBlocks, BasicBlock *ParentBB, 1012 NewBlocks.reserve(L.getNumBlocks() + ExitBlocks.size()); 1046 for (auto *ExitBB : ExitBlocks) { 1234 static void buildClonedLoops(Loop &OrigL, ArrayRef<BasicBlock *> ExitBlocks, argument 1252 ClonedExitsInLoops.reserve(ExitBlocks.size()); 1253 for (auto *ExitBB : ExitBlocks) 1484 deleteDeadClonedBlocks(Loop &L, ArrayRef<BasicBlock *> ExitBlocks, argument 1489 for (BasicBlock *BB : llvm::concat<BasicBlock *const>(L.blocks(), ExitBlocks)) 1514 SmallVectorImpl<BasicBlock *> &ExitBlocks, 1523 SmallVector<BasicBlock *, 16> DeathCandidates(ExitBlocks 1003 buildClonedLoopBlocks( Loop &L, BasicBlock *LoopPH, BasicBlock *SplitBB, ArrayRef<BasicBlock *> ExitBlocks, BasicBlock *ParentBB, BasicBlock *UnswitchedSuccBB, BasicBlock *ContinueSuccBB, const SmallDenseMap<BasicBlock *, BasicBlock *, 16> &DominatingSucc, ValueToValueMapTy &VMap, SmallVectorImpl<DominatorTree::UpdateType> &DTUpdates, AssumptionCache &AC, DominatorTree &DT, LoopInfo &LI, MemorySSAUpdater *MSSAU) argument 1513 deleteDeadBlocksFromLoop(Loop &L, SmallVectorImpl<BasicBlock *> &ExitBlocks, DominatorTree &DT, LoopInfo &LI, MemorySSAUpdater *MSSAU) argument 1713 rebuildLoopAfterUnswitch(Loop &L, ArrayRef<BasicBlock *> ExitBlocks, LoopInfo &LI, SmallVectorImpl<Loop *> &HoistedLoops) argument 1940 unswitchNontrivialInvariants( Loop &L, Instruction &TI, ArrayRef<Value *> Invariants, SmallVectorImpl<BasicBlock *> &ExitBlocks, DominatorTree &DT, LoopInfo &LI, AssumptionCache &AC, function_ref<void(bool, ArrayRef<Loop *>)> UnswitchCB, ScalarEvolution *SE, MemorySSAUpdater *MSSAU) argument 2414 turnGuardIntoBranch(IntrinsicInst *GI, Loop &L, SmallVectorImpl<BasicBlock *> &ExitBlocks, DominatorTree &DT, LoopInfo &LI, MemorySSAUpdater *MSSAU) argument [all...] |
H A D | LICM.cpp | 368 SmallVector<BasicBlock *, 8> ExitBlocks; local 369 L->getUniqueExitBlocks(ExitBlocks); 372 bool HasCatchSwitch = llvm::any_of(ExitBlocks, [](BasicBlock *Exit) { 379 InsertPts.reserve(ExitBlocks.size()); 381 MSSAInsertPts.reserve(ExitBlocks.size()); 382 for (BasicBlock *ExitBlock : ExitBlocks) { 414 PointerMustAliases, ExitBlocks, InsertPts, MSSAInsertPts, PIC, LI, 1464 SmallVector<BasicBlock *, 32> ExitBlocks; local 1465 CurLoop->getUniqueExitBlocks(ExitBlocks); 1466 SmallPtrSet<BasicBlock *, 32> ExitBlockSet(ExitBlocks 1837 promoteLoopAccessesToScalars( const SmallSetVector<Value *, 8> &PointerMustAliases, SmallVectorImpl<BasicBlock *> &ExitBlocks, SmallVectorImpl<Instruction *> &InsertPts, SmallVectorImpl<MemoryAccess *> &MSSAInsertPts, PredIteratorCache &PIC, LoopInfo *LI, DominatorTree *DT, const TargetLibraryInfo *TLI, Loop *CurLoop, AliasSetTracker *CurAST, MemorySSAUpdater *MSSAU, ICFLoopSafetyInfo *SafetyInfo, OptimizationRemarkEmitter *ORE) argument [all...] |
H A D | LoopSimplifyCFG.cpp | 266 SmallVector<BasicBlock *, 8> ExitBlocks; local 267 L.getExitBlocks(ExitBlocks); 269 for (auto *ExitBlock : ExitBlocks)
|
H A D | LoopIdiomRecognize.cpp | 172 SmallVectorImpl<BasicBlock *> &ExitBlocks); 343 SmallVector<BasicBlock *, 8> ExitBlocks; 344 CurLoop->getUniqueExitBlocks(ExitBlocks); 366 MadeChange |= runOnLoopBlock(BB, BECount, ExitBlocks); 566 SmallVectorImpl<BasicBlock *> &ExitBlocks) { 570 for (unsigned i = 0, e = ExitBlocks.size(); i != e; ++i) 571 if (!DT->dominates(BB, ExitBlocks[i])) 564 runOnLoopBlock( BasicBlock *BB, const SCEV *BECount, SmallVectorImpl<BasicBlock *> &ExitBlocks) argument
|
H A D | IndVarSimplify.cpp | 487 SmallVector<BasicBlock *, 8> ExitBlocks; local 488 L->getUniqueExitBlocks(ExitBlocks); 491 for (auto *ExitBB : ExitBlocks) {
|
/freebsd-13-stable/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | MachineLoopUtils.cpp | 135 SmallVector<MachineBasicBlock *, 4> ExitBlocks; local 136 Loop->getExitBlocks(ExitBlocks); 138 for (auto *MBB : ExitBlocks)
|
H A D | ShrinkWrap.cpp | 426 SmallVector<MachineBasicBlock*, 4> ExitBlocks; local 427 MLI->getLoopFor(Restore)->getExitingBlocks(ExitBlocks); 431 for (MachineBasicBlock *LoopExitBB: ExitBlocks) {
|
H A D | MachineLICM.cpp | 141 SmallVector<MachineBasicBlock *, 8> ExitBlocks; member in class:__anon3512::MachineLICMBase 144 return is_contained(ExitBlocks, MBB); 380 ExitBlocks.clear(); 389 CurLoop->getExitBlocks(ExitBlocks);
|
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ |
H A D | InstrProfiling.cpp | 193 BasicBlock *PH, ArrayRef<BasicBlock *> ExitBlocks, 197 : LoadAndStorePromoter({L, S}, SSA), Store(S), ExitBlocks(ExitBlocks), 205 for (unsigned i = 0, e = ExitBlocks.size(); i != e; ++i) { 206 BasicBlock *ExitBlock = ExitBlocks[i]; 237 ArrayRef<BasicBlock *> ExitBlocks; member in class:__anon4585::PGOCounterPromoterHelper 251 : LoopToCandidates(LoopToCands), ExitBlocks(), InsertPts(), L(CurLoop), 254 // Skip collection of ExitBlocks and InsertPts for loops that will not be 265 ExitBlocks.push_back(ExitBlock); 273 if (ExitBlocks 191 PGOCounterPromoterHelper( Instruction *L, Instruction *S, SSAUpdater &SSA, Value *Init, BasicBlock *PH, ArrayRef<BasicBlock *> ExitBlocks, ArrayRef<Instruction *> InsertPts, DenseMap<Loop *, SmallVector<LoadStorePair, 8>> &LoopToCands, LoopInfo &LI) argument 391 SmallVector<BasicBlock *, 8> ExitBlocks; member in class:__anon4585::PGOCounterPromoter [all...] |
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | MemorySSAUpdater.cpp | 656 ArrayRef<BasicBlock *> ExitBlocks, 722 for (auto BB : llvm::concat<BasicBlock *const>(LoopBlocks, ExitBlocks)) 725 for (auto BB : llvm::concat<BasicBlock *const>(LoopBlocks, ExitBlocks)) 749 ArrayRef<BasicBlock *> ExitBlocks, Iter ValuesBegin, Iter ValuesEnd, 753 for (auto *Exit : ExitBlocks) 763 ArrayRef<BasicBlock *> ExitBlocks, const ValueToValueMapTy &VMap, 766 privateUpdateExitBlocksForClonedLoop(ExitBlocks, std::begin(Arr), 771 ArrayRef<BasicBlock *> ExitBlocks, 781 privateUpdateExitBlocksForClonedLoop(ExitBlocks, MapBegin, MapEnd, DT); 655 updateForClonedLoop(const LoopBlocksRPO &LoopBlocks, ArrayRef<BasicBlock *> ExitBlocks, const ValueToValueMapTy &VMap, bool IgnoreIncomingWithNoClones) argument 748 privateUpdateExitBlocksForClonedLoop( ArrayRef<BasicBlock *> ExitBlocks, Iter ValuesBegin, Iter ValuesEnd, DominatorTree &DT) argument 762 updateExitBlocksForClonedLoop( ArrayRef<BasicBlock *> ExitBlocks, const ValueToValueMapTy &VMap, DominatorTree &DT) argument 770 updateExitBlocksForClonedLoop( ArrayRef<BasicBlock *> ExitBlocks, ArrayRef<std::unique_ptr<ValueToValueMapTy>> VMaps, DominatorTree &DT) argument
|
H A D | LoopInfo.cpp | 966 SmallVector<BasicBlock *, 8> ExitBlocks; 967 L.getExitBlocks(ExitBlocks); 968 if (!ExitBlocks.empty()) { 970 for (auto *Block : ExitBlocks)
|
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Target/ARM/ |
H A D | ARMLowOverheadLoops.cpp | 112 SmallVector<MachineBasicBlock*, 2> ExitBlocks; local 113 ML.getExitBlocks(ExitBlocks); 114 for (auto *MBB : ExitBlocks) 852 SmallVector<MachineBasicBlock *, 2> ExitBlocks; local 853 ML.getExitBlocks(ExitBlocks); 855 assert(ExitBlocks.size() == 1 && "Expected a single exit block"); 856 MachineBasicBlock *ExitBB = ExitBlocks.front();
|
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Target/Hexagon/ |
H A D | HexagonLoopIdiomRecognition.cpp | 152 SmallVectorImpl<BasicBlock*> &ExitBlocks); 2136 SmallVector<BasicBlock*, 8> ExitBlocks; local 2137 CurLoop->getUniqueExitBlocks(ExitBlocks); 2138 if (ExitBlocks.size() != 1) 2140 ExitB = ExitBlocks[0]; 2356 const SCEV *BECount, SmallVectorImpl<BasicBlock*> &ExitBlocks) { 2363 if (!all_of(ExitBlocks, DominatedByBB)) 2391 SmallVector<BasicBlock *, 8> ExitBlocks; local 2392 L->getUniqueExitBlocks(ExitBlocks); 2401 Changed |= runOnLoopBlock(L, BB, BECount, ExitBlocks); 2355 runOnLoopBlock(Loop *CurLoop, BasicBlock *BB, const SCEV *BECount, SmallVectorImpl<BasicBlock*> &ExitBlocks) argument [all...] |
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Target/PowerPC/ |
H A D | PPCTargetTransformInfo.cpp | 550 SmallVector<BasicBlock *, 4> ExitBlocks; local 551 L->getExitBlocks(ExitBlocks); 552 for (auto &BB : ExitBlocks) {
|