Home | History | Annotate | Download | only in Analysis

Lines Matching refs:Subloop

407   // subloop's new parent will be the nearest loop reachable from either its own
449 // Or the current block is part of a subloop, in which case its parent
504 Loop *Subloop = *std::prev(Unloop.end());
507 assert(SubloopParents.count(Subloop) && "DFS failed to visit subloop");
508 if (Loop *Parent = SubloopParents[Subloop])
509 Parent->addChildLoop(Subloop);
511 LI->addTopLevelLoop(Subloop);
516 /// is a subloop header, consider its parent to be the nearest parent of the
517 /// subloop's exits.
519 /// For subloop blocks, simply update SubloopParents and return NULL.
526 Loop *Subloop = nullptr;
528 Subloop = NearLoop;
529 // Find the subloop ancestor that is directly contained within Unloop.
530 while (Subloop->getParentLoop() != &Unloop) {
531 Subloop = Subloop->getParentLoop();
532 assert(Subloop && "subloop is not an ancestor of the original loop");
534 // Get the current nearest parent of the Subloop exits, initially Unloop.
536 SubloopParents.insert(std::make_pair(Subloop, &Unloop)).first->second;
541 assert(!Subloop && "subloop blocks must have a successor");
556 // Successor is in a subloop.
557 if (Subloop)
560 // BB branches from the original into a subloop header.
563 // Get the current nearest parent of the Subloop's exits.
574 // Remember the nearest parent loop among successors or subloop exits.
578 if (Subloop) {
579 SubloopParents[Subloop] = NearLoop;