Lines Matching defs:loopHeader
1080 void InitLoopInfo(FrameStateBuilder::LoopInfo& loopInfo, BytecodeRegion& loopHeader, size_t backId)
1084 loopInfo.loopHeadId = loopHeader.id;
1085 loopInfo.loopIndex = loopHeader.loopNumber;
1088 loopHeader.loopIndex = loopInfo.loopIndex;
1129 BytecodeRegion& loopHeader, size_t numOfEntries)
1135 block->start = loopHeader.start;
1136 ASSERT(loopHeader.start != 0);
1141 for (auto it = loopHeader.preds.begin(); it != loopHeader.preds.end();) {
1145 it = loopHeader.preds.erase(it);
1146 std::replace(bbPred->succs.begin(), bbPred->succs.end(), &loopHeader, block);
1152 frameBuilder_->MergeFromSuccBB(loopHeader.id);
1153 block->succs.emplace_back(&loopHeader);
1154 loopHeader.preds.insert(loopHeader.preds.begin(), block);
1157 ASSERT(loopHeader.trys.empty() && numOfEntries > 0);
1158 loopHeader.numOfStatePreds -= (numOfEntries - 1); // 1: one entry
1159 auto it = std::find(frameBuilder_->rpoList_.begin(), frameBuilder_->rpoList_.end(), loopHeader.id);
1169 auto& loopHeader = bcBuilder_->GetBasicBlockById(loopInfo.loopHeadId);
1170 ASSERT(loopHeader.numOfStatePreds > loopInfo.numLoopBacks);
1171 size_t numOfEntries = static_cast<size_t>(loopHeader.numOfStatePreds - loopInfo.numLoopBacks);
1172 if (numOfEntries > 1 && loopHeader.trys.size() == 0) {
1173 InsertEmptyBytecodeRegion(loopInfo, loopHeader, numOfEntries);