Lines Matching defs:InnerLoop
35 static bool checkLoopsStructure(const Loop &OuterLoop, const Loop &InnerLoop,
70 static CmpInst *getInnerLoopGuardCmp(const Loop &InnerLoop) {
72 BranchInst *InnerGuard = InnerLoop.getLoopGuardBranch();
103 bool LoopNest::arePerfectlyNested(const Loop &OuterLoop, const Loop &InnerLoop,
105 return (analyzeLoopNestForPerfectNest(OuterLoop, InnerLoop, SE) ==
110 const Loop &OuterLoop, const Loop &InnerLoop, ScalarEvolution &SE) {
113 assert(!InnerLoop.isOutermost() && "Inner loop should have a parent");
115 << "' and '" << InnerLoop.getName()
124 if (!checkLoopsStructure(OuterLoop, InnerLoop, SE)) {
138 CmpInst *InnerLoopGuardCmp = getInnerLoopGuardCmp(InnerLoop);
163 const BasicBlock *InnerLoopPreHeader = InnerLoop.getLoopPreheader();
169 !containsOnlySafeInstructions(*InnerLoop.getExitBlock())) {
176 << InnerLoop.getName() << "' are perfectly nested.\n");
182 const Loop &OuterLoop, const Loop &InnerLoop, ScalarEvolution &SE) {
184 switch (analyzeLoopNestForPerfectNest(OuterLoop, InnerLoop, SE)) {
208 CmpInst *InnerLoopGuardCmp = getInnerLoopGuardCmp(InnerLoop);
227 const BasicBlock *InnerLoopPreHeader = InnerLoop.getLoopPreheader();
228 const BasicBlock *InnerLoopExitBlock = InnerLoop.getExitBlock();
270 const Loop *InnerLoop = SubLoops->front();
271 if (!arePerfectlyNested(*CurrentLoop, *InnerLoop, SE)) {
275 << InnerLoop->getName() << "'\n";
280 CurrentLoop = InnerLoop;
315 static bool checkLoopsStructure(const Loop &OuterLoop, const Loop &InnerLoop,
319 (InnerLoop.getParentLoop() != &OuterLoop))
323 if (!OuterLoop.isLoopSimplifyForm() || !InnerLoop.isLoopSimplifyForm())
328 const BasicBlock *InnerLoopPreHeader = InnerLoop.getLoopPreheader();
329 const BasicBlock *InnerLoopLatch = InnerLoop.getLoopLatch();
330 const BasicBlock *InnerLoopExit = InnerLoop.getExitBlock();
334 InnerLoop.getExitingBlock() != InnerLoopLatch || !InnerLoopExit)
369 if (!BI || BI != InnerLoop.getLoopGuardBranch())
421 &LoopNest::skipEmptyBlockUntil(InnerLoop.getExitBlock(),
423 (&LoopNest::skipEmptyBlockUntil(InnerLoop.getExitBlock(),