Lines Matching refs:Subloop
429 // subloop's new parent will be the nearest loop reachable from either its own
472 // Or the current block is part of a subloop, in which case its parent
529 Loop *Subloop = *std::prev(Unloop->end());
532 assert(SubloopParents.count(Subloop) && "DFS failed to visit subloop");
533 if (Loop *Parent = SubloopParents[Subloop])
534 Parent->addChildLoop(Subloop);
536 LI->addTopLevelLoop(Subloop);
541 /// successors. If a successor is a subloop header, consider its parent to be
542 /// the nearest parent of the subloop's exits.
544 /// For subloop blocks, simply update SubloopParents and return NULL.
551 Loop *Subloop = nullptr;
553 Subloop = NearLoop;
554 // Find the subloop ancestor that is directly contained within Unloop.
555 while (Subloop->getParentLoop() != Unloop) {
556 Subloop = Subloop->getParentLoop();
557 assert(Subloop && "subloop is not an ancestor of the original loop");
559 // Get the current nearest parent of the Subloop exits, initially Unloop.
561 SubloopParents.insert(std::make_pair(Subloop, Unloop)).first->second;
566 assert(!Subloop && "subloop blocks must have a successor");
581 // Successor is in a subloop.
582 if (Subloop)
585 // BB branches from the original into a subloop header.
588 // Get the current nearest parent of the Subloop's exits.
599 // Remember the nearest parent loop among successors or subloop exits.
603 if (Subloop) {
604 SubloopParents[Subloop] = NearLoop;