Lines Matching refs:idoms
183 std::unordered_map<cbb_ptr, block_detail> idoms; in CalculateDominators() local
185 idoms[postorder[i]] = {undefined_dom, i}; in CalculateDominators()
187 idoms[postorder.back()].dominator = idoms[postorder.back()].postorder_index; in CalculateDominators()
197 [&idoms, undefined_dom](BB* pred) { in CalculateDominators()
198 return idoms.count(pred) && in CalculateDominators()
199 idoms[pred].dominator != undefined_dom; in CalculateDominators()
203 size_t idom_idx = idoms[idom].postorder_index; in CalculateDominators()
211 if (!idoms.count(p)) continue; in CalculateDominators()
212 if (idoms[p].dominator != undefined_dom) { in CalculateDominators()
213 size_t finger1 = idoms[p].postorder_index; in CalculateDominators()
217 finger1 = idoms[postorder[finger1]].dominator; in CalculateDominators()
220 finger2 = idoms[postorder[finger2]].dominator; in CalculateDominators()
226 if (idoms[*b].dominator != idom_idx) { in CalculateDominators()
227 idoms[*b].dominator = idom_idx; in CalculateDominators()
234 for (auto idom : idoms) { in CalculateDominators()
244 [&idoms](const std::pair<bb_ptr, bb_ptr>& lhs, in CalculateDominators()
250 auto lhs_indices = std::make_pair(idoms[lhs.first].postorder_index, in CalculateDominators()
251 idoms[lhs.second].postorder_index); in CalculateDominators()
252 auto rhs_indices = std::make_pair(idoms[rhs.first].postorder_index, in CalculateDominators()
253 idoms[rhs.second].postorder_index); in CalculateDominators()