/external/llvm/lib/Transforms/Utils/ |
D | LoopSimplify.cpp | 505 for (BasicBlock *ExitingBlock : ExitingBlocks) in simplifyOneLoop() 506 if (BranchInst *BI = dyn_cast<BranchInst>(ExitingBlock->getTerminator())) in simplifyOneLoop() 511 << ExitingBlock->getName() << "\n"); in simplifyOneLoop() 622 BasicBlock *ExitingBlock = ExitingBlocks[i]; in simplifyOneLoop() local 623 if (!ExitingBlock->getSinglePredecessor()) continue; in simplifyOneLoop() 624 BranchInst *BI = dyn_cast<BranchInst>(ExitingBlock->getTerminator()); in simplifyOneLoop() 627 if (!CI || CI->getParent() != ExitingBlock) continue; in simplifyOneLoop() 633 for (BasicBlock::iterator I = ExitingBlock->begin(); &*I != BI; ) { in simplifyOneLoop() 665 << ExitingBlock->getName() << "\n"); in simplifyOneLoop() 674 assert(pred_begin(ExitingBlock) == pred_end(ExitingBlock)); in simplifyOneLoop() [all …]
|
/external/swiftshader/third_party/LLVM/lib/Transforms/Utils/ |
D | LoopSimplify.cpp | 293 BasicBlock *ExitingBlock = ExitingBlocks[i]; in ProcessLoop() local 294 if (!ExitingBlock->getSinglePredecessor()) continue; in ProcessLoop() 295 BranchInst *BI = dyn_cast<BranchInst>(ExitingBlock->getTerminator()); in ProcessLoop() 298 if (!CI || CI->getParent() != ExitingBlock) continue; in ProcessLoop() 303 for (BasicBlock::iterator I = ExitingBlock->begin(); &*I != BI; ) { in ProcessLoop() 326 << ExitingBlock->getName() << "\n"); in ProcessLoop() 336 assert(pred_begin(ExitingBlock) == pred_end(ExitingBlock)); in ProcessLoop() 338 LI->removeBlock(ExitingBlock); in ProcessLoop() 340 DomTreeNode *Node = DT->getNode(ExitingBlock); in ProcessLoop() 347 DT->eraseNode(ExitingBlock); in ProcessLoop() [all …]
|
/external/llvm/lib/Target/Hexagon/ |
D | HexagonHardwareLoops.cpp | 390 MachineBasicBlock *ExitingBlock = getExitingBlock(L); in findInductionRegister() local 391 if (!Header || !Preheader || !Latch || !ExitingBlock) in findInductionRegister() 439 bool NotAnalyzed = TII->analyzeBranch(*ExitingBlock, TB, FB, Cond, false); in findInductionRegister() 558 MachineBasicBlock *ExitingBlock = getExitingBlock(L); in getLoopTripCount() local 559 if (!ExitingBlock) in getLoopTripCount() 586 bool NotAnalyzed = TII->analyzeBranch(*ExitingBlock, TB, FB, Cond, false); in getLoopTripCount() 595 if (ExitingBlock != Latch && (TB == Latch || FB == Latch)) { in getLoopTripCount() 1183 MachineBasicBlock *ExitingBlock = getExitingBlock(L); in convertToHardwareLoop() local 1185 if (ExitingBlock != L->getLoopLatch()) { in convertToHardwareLoop() 1189 if (TII->analyzeBranch(*ExitingBlock, TB, FB, Cond, false)) in convertToHardwareLoop() [all …]
|
/external/swiftshader/third_party/LLVM/include/llvm/Analysis/ |
D | ScalarEvolution.h | 267 AssertingVH<BasicBlock> ExitingBlock; 271 ExitNotTakenInfo() : ExitingBlock(0), ExactNotTaken(0) {} 312 return ExitNotTaken.ExitingBlock || !isa<SCEVCouldNotCompute>(Max); 325 const SCEV *getExact(BasicBlock *ExitingBlock, ScalarEvolution *SE) const; 433 ExitLimit ComputeExitLimit(const Loop *L, BasicBlock *ExitingBlock); 738 const SCEV *getExitCount(Loop *L, BasicBlock *ExitingBlock);
|
/external/llvm/include/llvm/Analysis/ |
D | ScalarEvolution.h | 562 AssertingVH<BasicBlock> ExitingBlock; 569 : ExitingBlock(nullptr), ExactNotTaken(nullptr), ExtraInfo(nullptr), 574 : ExitingBlock(ExitBlock), ExactNotTaken(Expr), ExtraInfo(Ptr), 717 return ExitNotTaken.ExitingBlock || !isa<SCEVCouldNotCompute>(Max); 746 const SCEV *getExact(BasicBlock *ExitingBlock, ScalarEvolution *SE) const; 895 ExitLimit computeExitLimit(const Loop *L, BasicBlock *ExitingBlock, 1363 unsigned getSmallConstantTripCount(Loop *L, BasicBlock *ExitingBlock); 1379 unsigned getSmallConstantTripMultiple(Loop *L, BasicBlock *ExitingBlock); 1384 const SCEV *getExitCount(Loop *L, BasicBlock *ExitingBlock);
|
/external/llvm/lib/Transforms/Scalar/ |
D | LoopUnrollPass.cpp | 937 BasicBlock *ExitingBlock = L->getLoopLatch(); in tryToUnrollLoop() local 938 if (!ExitingBlock || !L->isLoopExiting(ExitingBlock)) in tryToUnrollLoop() 939 ExitingBlock = L->getExitingBlock(); in tryToUnrollLoop() 940 if (ExitingBlock) { in tryToUnrollLoop() 941 TripCount = SE->getSmallConstantTripCount(L, ExitingBlock); in tryToUnrollLoop() 942 TripMultiple = SE->getSmallConstantTripMultiple(L, ExitingBlock); in tryToUnrollLoop()
|
D | LoopStrengthReduce.cpp | 2075 for (BasicBlock *ExitingBlock : ExitingBlocks) { in OptimizeLoopTermCond() 2082 BranchInst *TermBr = dyn_cast<BranchInst>(ExitingBlock->getTerminator()); in OptimizeLoopTermCond() 2106 if (!DT.dominates(ExitingBlock, LatchBlock)) in OptimizeLoopTermCond() 2111 if (LatchBlock != ExitingBlock) in OptimizeLoopTermCond() 2116 !DT.properlyDominates(UI->getUser()->getParent(), ExitingBlock)) { in OptimizeLoopTermCond() 2171 ExitingBlock->getInstList().insert(TermBr->getIterator(), Cond); in OptimizeLoopTermCond()
|
/external/llvm/test/Transforms/LoopVectorize/ |
D | infiniteloop.ll | 13 ; // which this loop is *guaranteed not to exit* via ExitingBlock. Otherwise
|
/external/llvm/lib/Analysis/ |
D | ScalarEvolution.cpp | 5255 BasicBlock *ExitingBlock) { in getSmallConstantTripCount() argument 5256 assert(ExitingBlock && "Must pass a non-null exiting block!"); in getSmallConstantTripCount() 5257 assert(L->isLoopExiting(ExitingBlock) && in getSmallConstantTripCount() 5260 dyn_cast<SCEVConstant>(getExitCount(L, ExitingBlock)); in getSmallConstantTripCount() 5296 BasicBlock *ExitingBlock) { in getSmallConstantTripMultiple() argument 5297 assert(ExitingBlock && "Must pass a non-null exiting block!"); in getSmallConstantTripMultiple() 5298 assert(L->isLoopExiting(ExitingBlock) && in getSmallConstantTripMultiple() 5300 const SCEV *ExitCount = getExitCount(L, ExitingBlock); in getSmallConstantTripMultiple() 5330 const SCEV *ScalarEvolution::getExitCount(Loop *L, BasicBlock *ExitingBlock) { in getExitCount() argument 5331 return getBackedgeTakenInfo(L).getExact(ExitingBlock, this); in getExitCount() [all …]
|
/external/llvm/test/Transforms/LoopSimplify/ |
D | preserve-scev.ll | 55 ; Notify SCEV when removing an ExitingBlock.
|
/external/swiftshader/third_party/LLVM/test/Transforms/LoopSimplify/ |
D | preserve-scev.ll | 52 ; Notify SCEV when removing an ExitingBlock.
|
/external/swiftshader/third_party/LLVM/lib/Analysis/ |
D | ScalarEvolution.cpp | 3977 const SCEV *ScalarEvolution::getExitCount(Loop *L, BasicBlock *ExitingBlock) { in getExitCount() argument 3978 return getBackedgeTakenInfo(L).getExact(ExitingBlock, this); in getExitCount() 4163 if (!ExitNotTaken.ExitingBlock) return SE->getCouldNotCompute(); in getExact() 4183 ScalarEvolution::BackedgeTakenInfo::getExact(BasicBlock *ExitingBlock, in getExact() argument 4188 if (ENT->ExitingBlock == ExitingBlock) in getExact() 4212 ExitNotTaken.ExitingBlock = ExitCounts[0].first; in BackedgeTakenInfo() 4222 ENT->ExitingBlock = ExitCounts[i].first; in BackedgeTakenInfo() 4229 ExitNotTaken.ExitingBlock = 0; in clear() 4266 ScalarEvolution::ComputeExitLimit(const Loop *L, BasicBlock *ExitingBlock) { in ComputeExitLimit() argument 4272 BranchInst *ExitBr = dyn_cast<BranchInst>(ExitingBlock->getTerminator()); in ComputeExitLimit()
|
/external/swiftshader/third_party/LLVM/lib/Transforms/Scalar/ |
D | LoopStrengthReduce.cpp | 1765 BasicBlock *ExitingBlock = ExitingBlocks[i]; in OptimizeLoopTermCond() local 1772 BranchInst *TermBr = dyn_cast<BranchInst>(ExitingBlock->getTerminator()); in OptimizeLoopTermCond() 1796 if (!DT.dominates(ExitingBlock, LatchBlock)) in OptimizeLoopTermCond() 1801 if (LatchBlock != ExitingBlock) in OptimizeLoopTermCond() 1806 !DT.properlyDominates(UI->getUser()->getParent(), ExitingBlock)) { in OptimizeLoopTermCond() 1860 ExitingBlock->getInstList().insert(TermBr, Cond); in OptimizeLoopTermCond()
|