Home | History | Annotate | Download | only in Analysis

Lines Matching refs:Loop

48 /// given loop.
49 static bool isInteresting(const SCEV *S, const Instruction *I, const Loop *L,
53 // Keep things simple. Don't touch loop-variant strides unless they're
54 // only used outside the loop and we can simplify them.
83 /// Return true if all loop headers that dominate this block are in simplified
87 SmallPtrSet<Loop*,16> &SimpleLoopNests) {
88 Loop *NearestLoop = nullptr;
92 Loop *DomLoop = LI->getLoopFor(DomBB);
94 // If the domtree walk reaches a loop with no preheader, return false.
97 // If we have already checked this loop nest, stop checking.
100 // If we have not already checked this loop nest, remember the loop
101 // header nearest to BB. The nearest loop may not contain BB.
115 SmallPtrSet<Loop*,16> &SimpleLoopNests) {
132 // 64-bit IV in 32-bit code just because the loop has one 64-bit cast.
155 // Only consider IVUsers that are dominated by simplified loop
167 // Descend recursively, but not into PHI nodes outside the current loop.
168 // It's important to see the entire expression outside the loop to get
170 // consider references outside the loop in all cases.
177 DEBUG(dbgs() << "FOUND USER in other loop: " << *User << '\n'
190 // Autodetect the post-inc loop set, populating NewUse.PostIncLoops.
225 // SCEVExpander can only handle users that are dominated by simplified loop
228 SmallPtrSet<Loop*,16> SimpleLoopNests;
250 bool IVUsers::runOnLoop(Loop *l, LPPassManager &LPM) {
259 // Find all uses of induction variables in this loop, and categorize
261 // this loop. If they are induction variables, inspect their uses.
269 OS << "IV Users for loop ";
285 OS << " (post-inc with loop ";
324 static const SCEVAddRecExpr *findAddRecForLoop(const SCEV *S, const Loop *L) {
342 const SCEV *IVUsers::getStride(const IVStrideUse &IU, const Loop *L) const {
348 void IVStrideUse::transformToPostInc(const Loop *L) {