Lines Matching refs:block
37 init_block(nir_block *block, nir_function_impl *impl) in init_block() argument
39 if (block == nir_start_block(impl)) in init_block()
40 block->imm_dom = block; in init_block()
42 block->imm_dom = NULL; in init_block()
43 block->num_dom_children = 0; in init_block()
46 block->dom_pre_index = UINT32_MAX; in init_block()
47 block->dom_post_index = 0; in init_block()
49 _mesa_set_clear(block->dom_frontier, NULL); in init_block()
73 calc_dominance(nir_block *block) in calc_dominance() argument
76 set_foreach(block->predecessors, entry) { in calc_dominance()
87 if (block->imm_dom != new_idom) { in calc_dominance()
88 block->imm_dom = new_idom; in calc_dominance()
96 calc_dom_frontier(nir_block *block) in calc_dom_frontier() argument
98 if (block->predecessors->entries > 1) { in calc_dom_frontier()
99 set_foreach(block->predecessors, entry) { in calc_dom_frontier()
106 while (runner != block->imm_dom) { in calc_dom_frontier()
107 _mesa_set_add(runner->dom_frontier, block); in calc_dom_frontier()
132 nir_foreach_block_unstructured(block, impl) { in calc_dom_children()
133 if (block->imm_dom) in calc_dom_children()
134 block->imm_dom->num_dom_children++; in calc_dom_children()
137 nir_foreach_block_unstructured(block, impl) { in calc_dom_children()
138 block->dom_children = ralloc_array(mem_ctx, nir_block *, in calc_dom_children()
139 block->num_dom_children); in calc_dom_children()
140 block->num_dom_children = 0; in calc_dom_children()
143 nir_foreach_block_unstructured(block, impl) { in calc_dom_children()
144 if (block->imm_dom) { in calc_dom_children()
145 block->imm_dom->dom_children[block->imm_dom->num_dom_children++] in calc_dom_children()
146 = block; in calc_dom_children()
152 calc_dfs_indicies(nir_block *block, uint32_t *index) in calc_dfs_indicies() argument
157 block->dom_pre_index = (*index)++; in calc_dfs_indicies()
159 for (unsigned i = 0; i < block->num_dom_children; i++) in calc_dfs_indicies()
160 calc_dfs_indicies(block->dom_children[i], index); in calc_dfs_indicies()
162 block->dom_post_index = (*index)++; in calc_dfs_indicies()
174 nir_foreach_block_unstructured(block, impl) { in nir_calc_dominance_impl()
175 init_block(block, impl); in nir_calc_dominance_impl()
181 nir_foreach_block_unstructured(block, impl) { in nir_calc_dominance_impl()
182 if (block != nir_start_block(impl)) in nir_calc_dominance_impl()
183 progress |= calc_dominance(block); in nir_calc_dominance_impl()
187 nir_foreach_block_unstructured(block, impl) { in nir_calc_dominance_impl()
188 calc_dom_frontier(block); in nir_calc_dominance_impl()
267 nir_block_is_unreachable(nir_block *block) in nir_block_is_unreachable() argument
269 assert(nir_cf_node_get_function(&block->cf_node)->valid_metadata & in nir_block_is_unreachable()
271 assert(nir_cf_node_get_function(&block->cf_node)->valid_metadata & in nir_block_is_unreachable()
277 return block->index > 0 && block->imm_dom == NULL; in nir_block_is_unreachable()
285 nir_foreach_block_unstructured(block, impl) { in nir_dump_dom_tree_impl()
286 if (block->imm_dom) in nir_dump_dom_tree_impl()
287 fprintf(fp, "\t%u -> %u\n", block->imm_dom->index, block->index); in nir_dump_dom_tree_impl()
305 nir_foreach_block_unstructured(block, impl) { in nir_dump_dom_frontier_impl()
306 fprintf(fp, "DF(%u) = {", block->index); in nir_dump_dom_frontier_impl()
307 set_foreach(block->dom_frontier, entry) { in nir_dump_dom_frontier_impl()
329 nir_foreach_block_unstructured(block, impl) { in nir_dump_cfg_impl()
330 if (block->successors[0]) in nir_dump_cfg_impl()
331 fprintf(fp, "\t%u -> %u\n", block->index, block->successors[0]->index); in nir_dump_cfg_impl()
332 if (block->successors[1]) in nir_dump_cfg_impl()
333 fprintf(fp, "\t%u -> %u\n", block->index, block->successors[1]->index); in nir_dump_cfg_impl()