Lines Matching defs:loopInfo
23 void LoopAnalysis::PrintLoop(LoopInfo* loopInfo)
26 LOG_COMPILER(INFO) << "Head: " << acc_.GetId(loopInfo->loopHead);
27 LOG_COMPILER(INFO) << "Size: " << loopInfo->size;
28 LOG_COMPILER(INFO) << "MaxDepth: " << loopInfo->maxDepth;
30 for (auto gate : loopInfo->loopBodys) {
35 for (auto gate : loopInfo->loopExits) {
50 auto loopInfo = chunk_->New<LoopInfo>(chunk_, gate);
51 loopInfos_.emplace_back(loopInfo);
57 LoopInfo* loopInfo, GateRef cur)
91 UpdateLoopInfo(loopInfo, nex, gateToDepth.at(nex));
98 void LoopAnalysis::CollectLoopBody(LoopInfo* loopInfo)
100 ASSERT(acc_.IsLoopHead(loopInfo->loopHead));
104 gateToDepth[loopInfo->loopHead] = 1;
105 firstList.push(loopInfo->loopHead);
116 CollectUseGate(gateToDepth, firstList, secondList, loopInfo, cur);
120 void LoopAnalysis::UpdateLoopInfo(LoopInfo* loopInfo, GateRef gate, size_t dep)
123 loopInfo->maxDepth = std::max(loopInfo->maxDepth, dep);
124 loopInfo->size++;
128 loopInfo->loopBacks.emplace_back(gate);
135 loopInfo->loopExits.emplace_back(gate);
153 loopInfo->size += 2; // 2: framestate and framevalues
154 loopInfo->loopBodys.emplace_back(frameState);
155 loopInfo->loopBodys.emplace_back(acc_.GetValueIn(frameState, 1));
158 loopInfo->loopBodys.emplace_back(gate);