Home | History | Annotate | Download | only in Analysis

Lines Matching refs:Loop

52 /// given loop.
53 static bool isInteresting(const SCEV *S, const Instruction *I, const Loop *L,
57 // Keep things simple. Don't touch loop-variant strides unless they're
58 // only used outside the loop and we can simplify them.
87 /// Return true if all loop headers that dominate this block are in simplified
91 SmallPtrSetImpl<Loop*> &SimpleLoopNests) {
92 Loop *NearestLoop = nullptr;
96 Loop *DomLoop = LI->getLoopFor(DomBB);
98 // If the domtree walk reaches a loop with no preheader, return false.
101 // If we have already checked this loop nest, stop checking.
104 // If we have not already checked this loop nest, remember the loop
105 // header nearest to BB. The nearest loop may not contain BB.
119 SmallPtrSetImpl<Loop*> &SimpleLoopNests) {
138 // 64-bit IV in 32-bit code just because the loop has one 64-bit cast.
166 // Only consider IVUsers that are dominated by simplified loop
178 // Descend recursively, but not into PHI nodes outside the current loop.
179 // It's important to see the entire expression outside the loop to get
181 // consider references outside the loop in all cases.
188 DEBUG(dbgs() << "FOUND USER in other loop: " << *User << '\n'
201 // Autodetect the post-inc loop set, populating NewUse.PostIncLoops.
236 // SCEVExpander can only handle users that are dominated by simplified loop
239 SmallPtrSet<Loop*,16> SimpleLoopNests;
262 bool IVUsers::runOnLoop(Loop *l, LPPassManager &LPM) {
275 // Find all uses of induction variables in this loop, and categorize
277 // this loop. If they are induction variables, inspect their uses.
285 OS << "IV Users for loop ";
301 OS << " (post-inc with loop ";
340 static const SCEVAddRecExpr *findAddRecForLoop(const SCEV *S, const Loop *L) {
358 const SCEV *IVUsers::getStride(const IVStrideUse &IU, const Loop *L) const {
364 void IVStrideUse::transformToPostInc(const Loop *L) {