Home | History | Annotate | Download | only in nir

Lines Matching refs:block

37 init_block(nir_block *block, nir_function_impl *impl)
39 if (block == nir_start_block(impl))
40 block->imm_dom = block;
42 block->imm_dom = NULL;
43 block->num_dom_children = 0;
45 set_foreach(block->dom_frontier, entry) {
46 _mesa_set_remove(block->dom_frontier, entry);
71 calc_dominance(nir_block *block)
74 set_foreach(block->predecessors, entry) {
85 if (block->imm_dom != new_idom) {
86 block->imm_dom = new_idom;
94 calc_dom_frontier(nir_block *block)
96 if (block->predecessors->entries > 1) {
97 set_foreach(block->predecessors, entry) {
104 while (runner != block->imm_dom) {
105 _mesa_set_add(runner->dom_frontier, block);
130 nir_foreach_block(block, impl) {
131 if (block->imm_dom)
132 block->imm_dom->num_dom_children++;
135 nir_foreach_block(block, impl) {
136 block->dom_children = ralloc_array(mem_ctx, nir_block *,
137 block->num_dom_children);
138 block->num_dom_children = 0;
141 nir_foreach_block(block, impl) {
142 if (block->imm_dom) {
143 block->imm_dom->dom_children[block->imm_dom->num_dom_children++]
144 = block;
150 calc_dfs_indicies(nir_block *block, unsigned *index)
152 block->dom_pre_index = (*index)++;
154 for (unsigned i = 0; i < block->num_dom_children; i++)
155 calc_dfs_indicies(block->dom_children[i], index);
157 block->dom_post_index = (*index)++;
169 nir_foreach_block(block, impl) {
170 init_block(block, impl);
176 nir_foreach_block(block, impl) {
177 if (block != nir_start_block(impl))
178 progress |= calc_dominance(block);
182 nir_foreach_block(block, impl) {
183 calc_dom_frontier(block);
206 * is null, the other block is returned.
243 nir_block_is_unreachable(nir_block *block)
245 assert(nir_cf_node_get_function(&block->cf_node)->valid_metadata &
247 assert(nir_cf_node_get_function(&block->cf_node)->valid_metadata &
250 /* Unreachable blocks have no dominator. The only reachable block with no
251 * dominator is the start block which has index 0.
253 return block->index > 0 && block->imm_dom == NULL;
261 nir_foreach_block(block, impl) {
262 if (block->imm_dom)
263 fprintf(fp, "\t%u -> %u\n", block->imm_dom->index, block->index);
281 nir_foreach_block(block, impl) {
282 fprintf(fp, "DF(%u) = {", block->index);
283 set_foreach(block->dom_frontier, entry) {
305 nir_foreach_block(block, impl) {
306 if (block->successors[0])
307 fprintf(fp, "\t%u -> %u\n", block->index, block->successors[0]->index);
308 if (block->successors[1])
309 fprintf(fp, "\t%u -> %u\n", block->index, block->successors[1]->index);