Searched refs:ExitBlocks (Results 1 - 23 of 23) sorted by relevance

/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DLCSSA.cpp71 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 DLoopUtils.cpp745 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 DLoopUnroll.cpp366 SmallVector<BasicBlock *, 4> ExitBlocks; local
367 L->getExitBlocks(ExitBlocks);
377 any_of(ExitBlocks, [](const BasicBlock *BB) {
H A DCodeExtractor.cpp1569 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 DMemorySSAUpdater.h108 ArrayRef<BasicBlock *> ExitBlocks,
117 void updateExitBlocksForClonedLoop(ArrayRef<BasicBlock *> ExitBlocks,
121 ArrayRef<BasicBlock *> ExitBlocks,
289 void privateUpdateExitBlocksForClonedLoop(ArrayRef<BasicBlock *> ExitBlocks,
H A DLoopInfoImpl.h62 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 DLoopInfo.h271 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 DLoopExtractor.cpp165 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 DLoopUnswitch.cpp242 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 DSimpleLoopUnswitch.cpp1005 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 DLICM.cpp368 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 DLoopSimplifyCFG.cpp266 SmallVector<BasicBlock *, 8> ExitBlocks; local
267 L.getExitBlocks(ExitBlocks);
269 for (auto *ExitBlock : ExitBlocks)
H A DLoopIdiomRecognize.cpp172 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 DIndVarSimplify.cpp487 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 DMachineLoopUtils.cpp135 SmallVector<MachineBasicBlock *, 4> ExitBlocks; local
136 Loop->getExitBlocks(ExitBlocks);
138 for (auto *MBB : ExitBlocks)
H A DShrinkWrap.cpp426 SmallVector<MachineBasicBlock*, 4> ExitBlocks; local
427 MLI->getLoopFor(Restore)->getExitingBlocks(ExitBlocks);
431 for (MachineBasicBlock *LoopExitBB: ExitBlocks) {
H A DMachineLICM.cpp141 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 DInstrProfiling.cpp193 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 DMemorySSAUpdater.cpp656 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 DLoopInfo.cpp966 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 DARMLowOverheadLoops.cpp112 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 DHexagonLoopIdiomRecognition.cpp152 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 DPPCTargetTransformInfo.cpp550 SmallVector<BasicBlock *, 4> ExitBlocks; local
551 L->getExitBlocks(ExitBlocks);
552 for (auto &BB : ExitBlocks) {

Completed in 402 milliseconds