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

/freebsd-11-stable/contrib/llvm-project/llvm/lib/Transforms/IPO/
H A DLoopExtractor.cpp118 SmallVector<BasicBlock*, 8> ExitBlocks; local
119 L->getExitBlocks(ExitBlocks);
120 for (unsigned i = 0, e = ExitBlocks.size(); i != e; ++i)
121 if (!isa<ReturnInst>(ExitBlocks[i]->getTerminator())) {
132 SmallVector<BasicBlock*, 8> ExitBlocks; local
133 L->getExitBlocks(ExitBlocks);
134 for (unsigned i = 0, e = ExitBlocks.size(); i != e; ++i)
135 if (ExitBlocks[i]->isEHPad()) {
/freebsd-11-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, 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, DominatorTree &DT, SmallVector<BasicBlock *, 8> &ExitBlocks, SmallSetVector<BasicBlock *, 8> &BlocksDominatingExits) argument
[all...]
H A DLoopUtils.cpp707 SmallVector<BasicBlock *, 4> ExitBlocks; local
708 L->getUniqueNonLatchExitBlocks(ExitBlocks);
709 if (any_of(ExitBlocks, [](const BasicBlock *EB) {
H A DLoopUnroll.cpp373 SmallVector<BasicBlock *, 4> ExitBlocks; local
374 L->getExitBlocks(ExitBlocks);
384 any_of(ExitBlocks, [](const BasicBlock *BB) {
H A DCodeExtractor.cpp1424 SmallPtrSet<BasicBlock *, 1> ExitBlocks; local
1434 ExitBlocks.insert(*SI);
1438 NumExitBlocks = ExitBlocks.size();
1442 severSplitPHINodesOfExits(ExitBlocks);
1552 for (BasicBlock *ExitBB : ExitBlocks)
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DMemorySSAUpdater.h120 ArrayRef<BasicBlock *> ExitBlocks,
129 void updateExitBlocksForClonedLoop(ArrayRef<BasicBlock *> ExitBlocks,
133 ArrayRef<BasicBlock *> ExitBlocks,
301 void privateUpdateExitBlocksForClonedLoop(ArrayRef<BasicBlock *> ExitBlocks,
H A DLoopInfoImpl.h63 SmallVectorImpl<BlockT *> &ExitBlocks) const {
69 ExitBlocks.push_back(Succ);
77 SmallVector<BlockT *, 8> ExitBlocks; local
78 getExitBlocks(ExitBlocks);
79 if (ExitBlocks.size() == 1)
80 return ExitBlocks[0];
102 SmallVectorImpl<BlockT *> &ExitBlocks,
111 ExitBlocks.push_back(Successor);
116 SmallVectorImpl<BlockT *> &ExitBlocks) const {
117 getUniqueExitBlocksHelper(this, ExitBlocks,
101 getUniqueExitBlocksHelper(const LoopT *L, SmallVectorImpl<BlockT *> &ExitBlocks, PredicateT Pred) argument
[all...]
H A DLoopInfo.h264 void getExitBlocks(SmallVectorImpl<BlockT *> &ExitBlocks) const;
276 void getUniqueExitBlocks(SmallVectorImpl<BlockT *> &ExitBlocks) const;
280 /// non Latch predecessor in a loop it will be added to ExitBlocks.
282 void getUniqueNonLatchExitBlocks(SmallVectorImpl<BlockT *> &ExitBlocks) const;
/freebsd-11-stable/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopUnswitch.cpp244 const SmallVectorImpl<BasicBlock *> &ExitBlocks);
1217 const SmallVectorImpl<BasicBlock *> &ExitBlocks){
1219 for (unsigned i = 0, e = ExitBlocks.size(); i != e; ++i) {
1220 BasicBlock *ExitBlock = ExitBlocks[i];
1262 SmallVector<BasicBlock*, 8> ExitBlocks; local
1263 L->getUniqueExitBlocks(ExitBlocks);
1267 SplitExitEdges(L, ExitBlocks);
1270 ExitBlocks.clear();
1271 L->getUniqueExitBlocks(ExitBlocks);
1274 LoopBlocks.insert(LoopBlocks.end(), ExitBlocks
1216 SplitExitEdges(Loop *L, const SmallVectorImpl<BasicBlock *> &ExitBlocks) argument
[all...]
H A DSimpleLoopUnswitch.cpp988 ArrayRef<BasicBlock *> ExitBlocks, BasicBlock *ParentBB,
995 NewBlocks.reserve(L.getNumBlocks() + ExitBlocks.size());
1029 for (auto *ExitBB : ExitBlocks) {
1217 static void buildClonedLoops(Loop &OrigL, ArrayRef<BasicBlock *> ExitBlocks, argument
1235 ClonedExitsInLoops.reserve(ExitBlocks.size());
1236 for (auto *ExitBB : ExitBlocks)
1467 deleteDeadClonedBlocks(Loop &L, ArrayRef<BasicBlock *> ExitBlocks, argument
1472 for (BasicBlock *BB : llvm::concat<BasicBlock *const>(L.blocks(), ExitBlocks))
1497 SmallVectorImpl<BasicBlock *> &ExitBlocks,
1506 SmallVector<BasicBlock *, 16> DeathCandidates(ExitBlocks
986 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
1496 deleteDeadBlocksFromLoop(Loop &L, SmallVectorImpl<BasicBlock *> &ExitBlocks, DominatorTree &DT, LoopInfo &LI, MemorySSAUpdater *MSSAU) argument
1691 rebuildLoopAfterUnswitch(Loop &L, ArrayRef<BasicBlock *> ExitBlocks, LoopInfo &LI, SmallVectorImpl<Loop *> &HoistedLoops) argument
1918 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
2392 turnGuardIntoBranch(IntrinsicInst *GI, Loop &L, SmallVectorImpl<BasicBlock *> &ExitBlocks, DominatorTree &DT, LoopInfo &LI, MemorySSAUpdater *MSSAU) argument
[all...]
H A DLICM.cpp409 SmallVector<BasicBlock *, 8> ExitBlocks; local
410 L->getUniqueExitBlocks(ExitBlocks);
413 bool HasCatchSwitch = llvm::any_of(ExitBlocks, [](BasicBlock *Exit) {
420 InsertPts.reserve(ExitBlocks.size());
422 MSSAInsertPts.reserve(ExitBlocks.size());
423 for (BasicBlock *ExitBlock : ExitBlocks) {
455 PointerMustAliases, ExitBlocks, InsertPts, MSSAInsertPts, PIC, LI,
1507 SmallVector<BasicBlock *, 32> ExitBlocks; local
1508 CurLoop->getUniqueExitBlocks(ExitBlocks);
1509 SmallPtrSet<BasicBlock *, 32> ExitBlockSet(ExitBlocks
1880 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.cpp264 SmallVector<BasicBlock *, 8> ExitBlocks; local
265 L.getExitBlocks(ExitBlocks);
267 for (auto *ExitBlock : ExitBlocks)
H A DLoopIdiomRecognize.cpp165 SmallVectorImpl<BasicBlock *> &ExitBlocks);
334 SmallVector<BasicBlock *, 8> ExitBlocks;
335 CurLoop->getUniqueExitBlocks(ExitBlocks);
357 MadeChange |= runOnLoopBlock(BB, BECount, ExitBlocks);
557 SmallVectorImpl<BasicBlock *> &ExitBlocks) {
561 for (unsigned i = 0, e = ExitBlocks.size(); i != e; ++i)
562 if (!DT->dominates(BB, ExitBlocks[i]))
555 runOnLoopBlock( BasicBlock *BB, const SCEV *BECount, SmallVectorImpl<BasicBlock *> &ExitBlocks) argument
H A DIndVarSimplify.cpp590 SmallVector<BasicBlock*, 8> ExitBlocks; local
591 L->getUniqueExitBlocks(ExitBlocks);
597 for (BasicBlock *ExitBB : ExitBlocks) {
778 SmallVector<BasicBlock *, 8> ExitBlocks; local
779 L->getUniqueExitBlocks(ExitBlocks);
782 for (auto *ExitBB : ExitBlocks) {
856 SmallVector<BasicBlock *, 8> ExitBlocks; local
857 L->getUniqueExitBlocks(ExitBlocks);
858 if (ExitBlocks.size() != 1 || ExitingBlocks.size() != 1)
861 BasicBlock *ExitBlock = ExitBlocks[
[all...]
/freebsd-11-stable/contrib/llvm-project/llvm/lib/CodeGen/
H A DMachineLoopUtils.cpp136 SmallVector<MachineBasicBlock *, 4> ExitBlocks; local
137 Loop->getExitBlocks(ExitBlocks);
139 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:__anon1756::MachineLICMBase
144 return is_contained(ExitBlocks, MBB);
380 ExitBlocks.clear();
389 CurLoop->getExitBlocks(ExitBlocks);
/freebsd-11-stable/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/
H A DInstrProfiling.cpp184 BasicBlock *PH, ArrayRef<BasicBlock *> ExitBlocks,
188 : LoadAndStorePromoter({L, S}, SSA), Store(S), ExitBlocks(ExitBlocks),
196 for (unsigned i = 0, e = ExitBlocks.size(); i != e; ++i) {
197 BasicBlock *ExitBlock = ExitBlocks[i];
228 ArrayRef<BasicBlock *> ExitBlocks; member in class:__anon2631::PGOCounterPromoterHelper
242 : LoopToCandidates(LoopToCands), ExitBlocks(), InsertPts(), L(CurLoop),
251 ExitBlocks.push_back(ExitBlock);
259 if (ExitBlocks.size() == 0)
287 L.getLoopPreheader(), ExitBlocks,
182 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
367 SmallVector<BasicBlock *, 8> ExitBlocks; member in class:__anon2631::PGOCounterPromoter
[all...]
/freebsd-11-stable/contrib/llvm-project/llvm/lib/Analysis/
H A DMemorySSAUpdater.cpp654 ArrayRef<BasicBlock *> ExitBlocks,
720 for (auto BB : llvm::concat<BasicBlock *const>(LoopBlocks, ExitBlocks))
723 for (auto BB : llvm::concat<BasicBlock *const>(LoopBlocks, ExitBlocks))
747 ArrayRef<BasicBlock *> ExitBlocks, Iter ValuesBegin, Iter ValuesEnd,
751 for (auto *Exit : ExitBlocks)
761 ArrayRef<BasicBlock *> ExitBlocks, const ValueToValueMapTy &VMap,
764 privateUpdateExitBlocksForClonedLoop(ExitBlocks, std::begin(Arr),
769 ArrayRef<BasicBlock *> ExitBlocks,
779 privateUpdateExitBlocksForClonedLoop(ExitBlocks, MapBegin, MapEnd, DT);
653 updateForClonedLoop(const LoopBlocksRPO &LoopBlocks, ArrayRef<BasicBlock *> ExitBlocks, const ValueToValueMapTy &VMap, bool IgnoreIncomingWithNoClones) argument
746 privateUpdateExitBlocksForClonedLoop( ArrayRef<BasicBlock *> ExitBlocks, Iter ValuesBegin, Iter ValuesEnd, DominatorTree &DT) argument
760 updateExitBlocksForClonedLoop( ArrayRef<BasicBlock *> ExitBlocks, const ValueToValueMapTy &VMap, DominatorTree &DT) argument
768 updateExitBlocksForClonedLoop( ArrayRef<BasicBlock *> ExitBlocks, ArrayRef<std::unique_ptr<ValueToValueMapTy>> VMaps, DominatorTree &DT) argument
H A DLoopInfo.cpp965 SmallVector<BasicBlock *, 8> ExitBlocks;
966 L.getExitBlocks(ExitBlocks);
967 if (!ExitBlocks.empty()) {
969 for (auto *Block : ExitBlocks)
/freebsd-11-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-11-stable/contrib/llvm-project/llvm/lib/Target/PowerPC/
H A DPPCTargetTransformInfo.cpp535 SmallVector<BasicBlock *, 4> ExitBlocks; local
536 L->getExitBlocks(ExitBlocks);
537 for (auto &BB : ExitBlocks) {

Completed in 322 milliseconds