Home | History | Annotate | Download | only in Analysis

Lines Matching refs:Subloop

290     // Each block in each subloop should be contained within this loop.
294 "Loop does not contain all the blocks of a subloop!");
301 "Loop is not a subloop of its parent!");
342 /// Discover a subloop with the specified backedges such that: All blocks within
343 /// this loop are mapped to this loop or a subloop. And all subloops within this
344 /// loop have their parent loop set to this loop or a subloop.
360 LoopT *Subloop = LI->getLoopFor(PredBB);
361 if (!Subloop) {
377 while (LoopT *Parent = Subloop->getParentLoop())
378 Subloop = Parent;
380 // If it is already discovered to be a subloop of this loop, continue.
381 if (Subloop == L)
384 // Discover a subloop of this loop.
385 Subloop->setParentLoop(L);
387 NumBlocks += Subloop->getBlocks().capacity();
388 PredBB = Subloop->getHeader();
390 // within this subloop tree itself. Note that a predecessor may directly
391 // reach another subloop that is not yet discovered to be a subloop of
396 if (LI->getLoopFor(*PI) != Subloop)
430 /// subloop header, add the subloop to its parent in PostOrder, then reverse the
431 /// Block and Subloop vectors of the now complete subloop to achieve RPO.
434 LoopT *Subloop = LI->getLoopFor(Block);
435 Subloop && Block == Subloop->getHeader()) {
436 // We reach this point once per subloop after processing all the blocks in
437 // the subloop.
438 if (Subloop->getParentLoop())
439 Subloop->getParentLoop()->getSubLoopsVector().push_back(Subloop);
441 LI->addTopLevelLoop(Subloop);
445 Subloop->reverseBlock(1);
446 std::reverse(Subloop->getSubLoopsVector().begin(),
447 Subloop->getSubLoopsVector().end());
449 Subloop = Subloop->getParentLoop();
451 for (; Subloop; Subloop = Subloop->getParentLoop())
452 Subloop->addBlockEntry(Block);
456 /// interleaved with backward CFG traversals within each subloop
458 /// this part of the algorithm is linear in the number of CFG edges. Subloop and
500 // Perform a single forward CFG traversal to populate block and subloop