Home
last modified time | relevance | path

Searched refs:ExitingBlock (Results 1 – 15 of 15) sorted by relevance

/llvm-project-15.0.7/polly/lib/CodeGen/
H A DUtils.cpp145 BasicBlock *ExitingBlock = in executeScopConditionally() local
153 L->addBasicBlockToLoop(ExitingBlock, LI); in executeScopConditionally()
156 DT.addNewBlock(ExitingBlock, StartBlock); in executeScopConditionally()
158 RI.setRegionFor(ExitingBlock, RI.getRegionFor(SplitBlock)); in executeScopConditionally()
176 Builder.CreateBr(ExitingBlock); in executeScopConditionally()
177 DT.changeImmediateDominator(ExitingBlock, StartBlock); in executeScopConditionally()
180 Builder.SetInsertPoint(ExitingBlock); in executeScopConditionally()
218 return std::make_pair(std::make_pair(StartBlock, ExitingBlock), CondBr); in executeScopConditionally()
H A DCodeGeneration.cpp259 auto *ExitingBlock = StartBlock->getUniqueSuccessor(); in generateCode() local
260 assert(ExitingBlock); in generateCode()
261 auto *MergeBlock = ExitingBlock->getUniqueSuccessor(); in generateCode()
264 markBlockUnreachable(*ExitingBlock, Builder); in generateCode()
268 DT.eraseNode(ExitingBlock); in generateCode()
H A DPPCGCodeGeneration.cpp3527 auto *ExitingBlock = StartBlock->getUniqueSuccessor(); in generateCode() local
3528 assert(ExitingBlock); in generateCode()
3529 auto *MergeBlock = ExitingBlock->getUniqueSuccessor(); in generateCode()
3532 polly::markBlockUnreachable(*ExitingBlock, Builder); in generateCode()
3537 DT->eraseNode(ExitingBlock); in generateCode()
3551 auto *ExitingBlock = StartBlock->getUniqueSuccessor(); in generateCode() local
3552 assert(ExitingBlock); in generateCode()
3553 BasicBlock *MergeBlock = ExitingBlock->getUniqueSuccessor(); in generateCode()
/llvm-project-15.0.7/llvm/lib/Transforms/Utils/
H A DLoopSimplify.cpp524 for (BasicBlock *ExitingBlock : ExitingBlocks) in simplifyOneLoop()
531 << ExitingBlock->getName() << "\n"); in simplifyOneLoop()
635 BasicBlock *ExitingBlock = ExitingBlocks[i]; in simplifyOneLoop() local
636 if (!ExitingBlock->getSinglePredecessor()) continue; in simplifyOneLoop()
640 if (!CI || CI->getParent() != ExitingBlock) continue; in simplifyOneLoop()
677 assert(pred_empty(ExitingBlock)); in simplifyOneLoop()
679 LI->removeBlock(ExitingBlock); in simplifyOneLoop()
681 DomTreeNode *Node = DT->getNode(ExitingBlock); in simplifyOneLoop()
686 DT->eraseNode(ExitingBlock); in simplifyOneLoop()
689 ExitBlockSet.insert(ExitingBlock); in simplifyOneLoop()
[all …]
H A DLoopUnroll.cpp329 for (auto *ExitingBlock : ExitingBlocks) { in UnrollLoop() local
332 auto *BI = dyn_cast<BranchInst>(ExitingBlock->getTerminator()); in UnrollLoop()
336 ExitInfo &Info = ExitInfos.try_emplace(ExitingBlock).first->second; in UnrollLoop()
337 Info.TripCount = SE->getSmallConstantTripCount(L, ExitingBlock); in UnrollLoop()
338 Info.TripMultiple = SE->getSmallConstantTripMultiple(L, ExitingBlock); in UnrollLoop()
347 Info.ExitingBlocks.push_back(ExitingBlock); in UnrollLoop()
348 LLVM_DEBUG(dbgs() << " Exiting block %" << ExitingBlock->getName() in UnrollLoop()
/llvm-project-15.0.7/llvm/lib/Transforms/Scalar/
H A DLoopFuse.cpp155 BasicBlock *ExitingBlock; member
246 assert(ExitingBlock == L->getExitingBlock() && in verify()
269 ExitingBlock = L->getExitingBlock(); in updateAfterPeeling()
306 << (ExitingBlock ? ExitingBlock->getName() : "nullptr") << "\n" in dump()
326 if (!ExitingBlock) in isEligibleForFusion()
1356 if (FC0.ExitingBlock != FC0.Latch) in performFusion()
1439 FC0.ExitingBlock); in performFusion()
1454 if (FC0.Latch != FC0.ExitingBlock) in performFusion()
1644 if (FC0.ExitingBlock != FC0.Latch) in fuseGuardedLoops()
1720 FC0.ExitingBlock); in fuseGuardedLoops()
[all …]
H A DLoopUnrollPass.cpp1231 for (BasicBlock *ExitingBlock : ExitingBlocks) in tryToUnrollLoop()
1232 if (unsigned TC = SE.getSmallConstantTripCount(L, ExitingBlock)) in tryToUnrollLoop()
1240 BasicBlock *ExitingBlock = L->getLoopLatch(); in tryToUnrollLoop() local
1241 if (!ExitingBlock || !L->isLoopExiting(ExitingBlock)) in tryToUnrollLoop()
1242 ExitingBlock = L->getExitingBlock(); in tryToUnrollLoop()
1243 if (ExitingBlock) in tryToUnrollLoop()
1244 TripMultiple = SE.getSmallConstantTripMultiple(L, ExitingBlock); in tryToUnrollLoop()
H A DLoopPredication.cpp974 [&](const BasicBlock *ExitingBlock, in isLoopProfitableToPredicate()
976 auto *Term = ExitingBlock->getTerminator(); in isLoopProfitableToPredicate()
991 assert(LatchBlock != ExitingBlock && in isLoopProfitableToPredicate()
H A DLoopStrengthReduce.cpp2425 for (BasicBlock *ExitingBlock : ExitingBlocks) { in OptimizeLoopTermCond()
2431 BranchInst *TermBr = dyn_cast<BranchInst>(ExitingBlock->getTerminator()); in OptimizeLoopTermCond()
2455 if (!DT.dominates(ExitingBlock, LatchBlock)) in OptimizeLoopTermCond()
2460 if (LatchBlock != ExitingBlock) in OptimizeLoopTermCond()
2465 !DT.properlyDominates(UI->getUser()->getParent(), ExitingBlock)) { in OptimizeLoopTermCond()
2523 ExitingBlock->getInstList().insert(TermBr->getIterator(), Cond); in OptimizeLoopTermCond()
/llvm-project-15.0.7/llvm/lib/Target/Hexagon/
H A DHexagonHardwareLoops.cpp410 MachineBasicBlock *ExitingBlock = L->findLoopControlBlock(); in findInductionRegister() local
411 if (!Header || !Preheader || !Latch || !ExitingBlock) in findInductionRegister()
591 MachineBasicBlock *ExitingBlock = L->findLoopControlBlock(); in getLoopTripCount() local
592 if (!ExitingBlock) in getLoopTripCount()
628 if (ExitingBlock != Latch && (TB == Latch || FB == Latch)) { in getLoopTripCount()
1216 MachineBasicBlock *ExitingBlock = L->findLoopControlBlock(); in convertToHardwareLoop() local
1218 if (ExitingBlock != L->getLoopLatch()) { in convertToHardwareLoop()
1593 MachineBasicBlock *ExitingBlock = L->findLoopControlBlock(); in fixupInductionVariable() local
1595 if (!(Header && Latch && ExitingBlock)) in fixupInductionVariable()
1850 if (!Latch || !ExitingBlock || Header->hasAddressTaken()) in createPreheaderForLoop()
[all …]
/llvm-project-15.0.7/llvm/include/llvm/Analysis/
H A DScalarEvolution.h807 const BasicBlock *ExitingBlock);
842 const BasicBlock *ExitingBlock);
863 const SCEV *getExitCount(const Loop *L, const BasicBlock *ExitingBlock,
1347 PoisoningVH<BasicBlock> ExitingBlock;
1352 explicit ExitNotTakenInfo(PoisoningVH<BasicBlock> ExitingBlock,
1356 : ExitingBlock(ExitingBlock), ExactNotTaken(ExactNotTaken),
1439 const SCEV *getExact(const BasicBlock *ExitingBlock,
1446 const SCEV *getConstantMax(const BasicBlock *ExitingBlock,
1651 ExitLimit computeExitLimit(const Loop *L, BasicBlock *ExitingBlock,
/llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/
H A Dinfiniteloop.ll13 ; // which this loop is *guaranteed not to exit* via ExitingBlock. Otherwise
/llvm-project-15.0.7/llvm/lib/Analysis/
H A DScalarEvolution.cpp7923 assert(L->isLoopExiting(ExitingBlock) && in getSmallConstantTripCount()
8114 assert(L->isLoopExiting(ExitingBlock) && in getSmallConstantTripMultiple()
8384 assert(SE->DT.dominates(ENT.ExitingBlock, Latch) && in getExact()
8409 if (ENT.ExitingBlock == ExitingBlock && ENT.hasAlwaysTruePredicate()) in getExact()
8418 if (ENT.ExitingBlock == ExitingBlock && ENT.hasAlwaysTruePredicate()) in getConstantMax()
8615 if (!Latch || !DT.dominates(ExitingBlock, Latch)) in computeExitLimit()
8619 Instruction *Term = ExitingBlock->getTerminator(); in computeExitLimit()
8634 for (auto *SBB : successors(ExitingBlock)) in computeExitLimit()
8991 if (Switch->getDefaultDest() == ExitingBlock) in computeExitLimitFromSingleExitSwitch()
13185 for (BasicBlock *ExitingBlock : ExitingBlocks) { in PrintLoopInfo()
[all …]
/llvm-project-15.0.7/llvm/lib/Transforms/Vectorize/
H A DVPlan.h2205 void setExiting(VPBlockBase *ExitingBlock) { in setExiting() argument
2206 assert(ExitingBlock->getSuccessors().empty() && in setExiting()
2208 Exiting = ExitingBlock; in setExiting()
2209 ExitingBlock->setParent(this); in setExiting()
/llvm-project-15.0.7/llvm/test/Transforms/LoopSimplify/
H A Dpreserve-scev.ll79 ; Notify SCEV when removing an ExitingBlock. This only changes the