Home | History | Annotate | Download | only in Analysis

Lines Matching refs:Subloop

309     // Each block in each subloop should be contained within this loop.
313 "Loop does not contain all the blocks of a subloop!");
320 "Loop is not a subloop of its parent!");
361 /// Discover a subloop with the specified backedges such that: All blocks within
362 /// this loop are mapped to this loop or a subloop. And all subloops within this
363 /// loop have their parent loop set to this loop or a subloop.
379 LoopT *Subloop = LI->getLoopFor(PredBB);
380 if (!Subloop) {
396 while (LoopT *Parent = Subloop->getParentLoop())
397 Subloop = Parent;
399 // If it is already discovered to be a subloop of this loop, continue.
400 if (Subloop == L)
403 // Discover a subloop of this loop.
404 Subloop->setParentLoop(L);
406 NumBlocks += Subloop->getBlocks().capacity();
407 PredBB = Subloop->getHeader();
409 // within this subloop tree itself. Note that a predecessor may directly
410 // reach another subloop that is not yet discovered to be a subloop of
415 if (LI->getLoopFor(*PI) != Subloop)
477 /// subloop header, add the subloop to its parent in PostOrder, then reverse the
478 /// Block and Subloop vectors of the now complete subloop to achieve RPO.
481 LoopT *Subloop = LI->getLoopFor(Block);
482 if (Subloop && Block == Subloop->getHeader()) {
483 // We reach this point once per subloop after processing all the blocks in
484 // the subloop.
485 if (Subloop->getParentLoop())
486 Subloop->getParentLoop()->getSubLoopsVector().push_back(Subloop);
488 LI->addTopLevelLoop(Subloop);
492 std::reverse(Subloop->getBlocksVector().begin()+1,
493 Subloop->getBlocksVector().end());
494 std::reverse(Subloop->getSubLoopsVector().begin(),
495 Subloop->getSubLoopsVector().end());
497 Subloop = Subloop->getParentLoop();
499 for (; Subloop; Subloop = Subloop->getParentLoop())
500 Subloop->getBlocksVector().push_back(Block);
504 /// interleaved with backward CFG traversals within each subloop
506 /// this part of the algorithm is linear in the number of CFG edges. Subloop and
549 // Perform a single forward CFG traversal to populate block and subloop