| /llvm-project-15.0.7/polly/lib/CodeGen/ |
| H A D | Utils.cpp | 145 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 D | CodeGeneration.cpp | 259 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 D | PPCGCodeGeneration.cpp | 3527 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 D | LoopSimplify.cpp | 524 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 D | LoopUnroll.cpp | 329 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 D | LoopFuse.cpp | 155 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 D | LoopUnrollPass.cpp | 1231 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 D | LoopPredication.cpp | 974 [&](const BasicBlock *ExitingBlock, in isLoopProfitableToPredicate() 976 auto *Term = ExitingBlock->getTerminator(); in isLoopProfitableToPredicate() 991 assert(LatchBlock != ExitingBlock && in isLoopProfitableToPredicate()
|
| H A D | LoopStrengthReduce.cpp | 2425 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 D | HexagonHardwareLoops.cpp | 410 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 D | ScalarEvolution.h | 807 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 D | infiniteloop.ll | 13 ; // which this loop is *guaranteed not to exit* via ExitingBlock. Otherwise
|
| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | ScalarEvolution.cpp | 7923 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 D | VPlan.h | 2205 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 D | preserve-scev.ll | 79 ; Notify SCEV when removing an ExitingBlock. This only changes the
|