Lines Matching defs:succ

218             for (auto succ : curRegion->succs_) {
219 if (!succ->IsVisited(linearizer_->acc_)) {
220 succ->SetVisited(linearizer_->acc_);
221 pendingList_.emplace_back(succ);
222 dfsFatherIdx_[succ->id_] = dfsTimestamp_[curRegion->id_];
329 for (auto succ : curRegion->dominatedRegions_) {
330 ASSERT(succ->iDominator_->depth_ != GateRegion::INVALID_DEPTH);
331 succ->depth_ = succ->iDominator_->depth_ + 1;
332 pendingList_.emplace_back(succ);
455 GateRegion* succ = curRegion->succs_[index];
457 if (succ->IsFinished(acc_)) {
460 if (succ->IsUnvisited(acc_)) {
461 currentDepth = Push(succ, currentDepth);
463 ASSERT(succ->IsVisited(acc_) && index > 0);
465 if (!succ->HasLoopNumber()) {
466 succ->SetLoopNumber(numLoops_++);
483 GateRegion* succ = nullptr;
494 succ = currentInfo.loopExits->at(loopExitIndex);
499 succ = curRegion->succs_[curState.index++]; // goto next
501 if (succ != nullptr) {
502 if (!succ->IsUnvisited(acc_)) {
505 if (loopInfo != nullptr && !loopInfo->loopBodys->TestBit(succ->GetId())) {
506 AddLoopExit(succ, loopInfo);
507 } else if (succ->IsUnvisited(acc_)) {
508 currentDepth = Push(succ, currentDepth);
509 loopInfo = EnterInnerLoop(succ, loopInfo);
520 void AddLoopExit(GateRegion* succ, GraphLinearizer::LoopInfo *loopInfo)
525 loopInfo->loopExits->emplace_back(succ);
528 GraphLinearizer::LoopInfo *EnterInnerLoop(GateRegion* succ, GraphLinearizer::LoopInfo *loopInfo)
531 if (succ->HasLoopNumber()) {
532 ASSERT_PRINT(succ->loopIndex_ != GateRegion::INVALID_INDEX, "GateRegion's index should be assigned");
533 auto& innerLoop = linearizer_->loops_[succ->GetLoopNumber()];
540 succ->loopDepth_ = static_cast<int32_t>(innerLoop.loopDepth);
543 succ->loopIndex_ = static_cast<int32_t>(loopInfo->loopIndex);
544 succ->loopDepth_ = static_cast<int32_t>(loopInfo->loopDepth);
936 GateRegion* succ = target->GetSimpleSuccRegion();
937 if (succ == nullptr) {
940 MoveAndClear(target, succ);
941 target = succ;