/external/mesa3d/src/imagination/pco/ |
D | pco_builder.h | 39 pco_cf_node *cf_node; member 58 static inline pco_cursor pco_cursor_before_cf_node(pco_cf_node *cf_node) in pco_cursor_before_cf_node() argument 62 .cf_node = cf_node, in pco_cursor_before_cf_node() 72 static inline pco_cursor pco_cursor_after_cf_node(pco_cf_node *cf_node) in pco_cursor_after_cf_node() argument 76 .cf_node = cf_node, in pco_cursor_after_cf_node() 88 return pco_cursor_before_cf_node(&block->cf_node); in pco_cursor_before_block() 99 return pco_cursor_after_cf_node(&block->cf_node); in pco_cursor_after_block() 183 switch (cursor.cf_node->type) { in pco_cursor_func() 185 return pco_cf_node_as_block(cursor.cf_node)->parent_func; in pco_cursor_func() 188 return pco_cf_node_as_if(cursor.cf_node)->parent_func; in pco_cursor_func() [all …]
|
D | pco_internal.h | 268 pco_cf_node cf_node; /** Control flow node. */ member 276 pco_cf_node cf_node; /** CF node. */ member 286 pco_cf_node cf_node; /** CF node. */ member 304 pco_cf_node cf_node; /** Control flow node. */ member 423 cf_node, in PCO_DEFINE_CAST() 429 cf_node, in PCO_DEFINE_CAST() 435 cf_node, in PCO_DEFINE_CAST() 441 cf_node, in PCO_DEFINE_CAST() 452 #define pco_foreach_cf_node_in_if_then(cf_node, _if) \ in PCO_DEFINE_CAST() argument 453 list_for_each_entry (pco_cf_node, cf_node, &(_if)->then_body, link) in PCO_DEFINE_CAST() [all …]
|
D | pco_validate.c | 36 pco_cf_node *cf_node; /** Current cf node being validated. */ member 89 if (state->cf_node) { in pco_assert() 91 pco_print_cf_node_name(state->shader, state->cf_node); in pco_assert() 106 pco_print_cf_node_name(state->shader, &state->func->cf_node); in pco_assert() 137 state->cf_node = &instr->parent_block->cf_node; in pco_validate_ssa()
|
D | pco.c | 115 static inline void init_cf_node(pco_cf_node *cf_node, in init_cf_node() argument 118 cf_node->type = type; in init_cf_node() 119 cf_node->parent = NULL; in init_cf_node() 150 init_cf_node(&func->cf_node, PCO_CF_NODE_TYPE_FUNC); in pco_func_create() 180 init_cf_node(&block->cf_node, PCO_CF_NODE_TYPE_BLOCK); in pco_block_create() 198 init_cf_node(&pif->cf_node, PCO_CF_NODE_TYPE_IF); in pco_if_create() 217 init_cf_node(&loop->cf_node, PCO_CF_NODE_TYPE_LOOP); in pco_loop_create()
|
D | pco_print.c | 38 static void _pco_print_cf_node(pco_print_state *state, pco_cf_node *cf_node); 899 pco_foreach_cf_node_in_if_then (cf_node, pif) { in pco_print_if() 900 _pco_print_cf_node(state, cf_node); in pco_print_if() 912 pco_foreach_cf_node_in_if_else (cf_node, pif) { in pco_print_if() 913 _pco_print_cf_node(state, cf_node); in pco_print_if() 944 pco_foreach_cf_node_in_loop (cf_node, loop) { in pco_print_loop() 945 _pco_print_cf_node(state, cf_node); in pco_print_loop() 1017 pco_foreach_cf_node_in_func (cf_node, func) { in pco_print_func() 1018 _pco_print_cf_node(state, cf_node); in pco_print_func() 1030 static void _pco_print_cf_node(pco_print_state *state, pco_cf_node *cf_node) in _pco_print_cf_node() argument [all …]
|
/external/mesa3d/src/compiler/nir/ |
D | nir_opt_loop_unroll.c | 52 nir_cf_node_get_function(&loop->cf_node)); in loop_prepare_for_unroll() 65 nir_cf_node_as_block(nir_cf_node_next(&loop->cf_node)); in loop_prepare_for_unroll() 137 nir_after_cf_node(&terminator->nif->cf_node)); in simple_unroll() 139 nir_cf_node_remove(&terminator->nif->cf_node); in simple_unroll() 152 nir_before_cf_node(&limiting_term->nif->cf_node)); in simple_unroll() 160 nir_after_cf_node(&limiting_term->nif->cf_node)); in simple_unroll() 164 nir_cf_extract(&loop_body, nir_after_cf_node(&limiting_term->nif->cf_node), in simple_unroll() 170 nir_cf_list_clone_and_reinsert(&lp_header, loop->cf_node.parent, in simple_unroll() 171 nir_before_cf_node(&loop->cf_node), in simple_unroll() 176 nir_cf_list_clone_and_reinsert(&loop_body, loop->cf_node.parent, in simple_unroll() [all …]
|
D | nir_sweep.c | 43 static void sweep_cf_node(nir_shader *nir, nir_cf_node *cf_node); 84 foreach_list_typed(nir_cf_node, cf_node, node, &iff->then_list) { in sweep_if() 85 sweep_cf_node(nir, cf_node); in sweep_if() 88 foreach_list_typed(nir_cf_node, cf_node, node, &iff->else_list) { in sweep_if() 89 sweep_cf_node(nir, cf_node); in sweep_if() 99 foreach_list_typed(nir_cf_node, cf_node, node, &loop->body) { in sweep_loop() 100 sweep_cf_node(nir, cf_node); in sweep_loop() 105 sweep_cf_node(nir_shader *nir, nir_cf_node *cf_node) in sweep_cf_node() argument 107 switch (cf_node->type) { in sweep_cf_node() 109 sweep_block(nir, nir_cf_node_as_block(cf_node)); in sweep_cf_node() [all …]
|
D | nir_control_flow.c | 188 new_block->cf_node.parent = block->cf_node.parent; in split_block_beginning() 189 exec_node_insert_node_before(&block->cf_node.node, &new_block->cf_node.node); in split_block_beginning() 224 nir_function_impl *impl = nir_cf_node_get_function(&block->cf_node); in nir_insert_phi_undef() 269 if (exec_node_is_tail_sentinel(block->cf_node.node.next)) { in block_add_normal_succs() 270 nir_cf_node *parent = block->cf_node.parent; in block_add_normal_succs() 295 nir_cf_node *next = nir_cf_node_next(&block->cf_node); in block_add_normal_succs() 320 new_block->cf_node.parent = block->cf_node.parent; in split_block_end() 321 exec_node_insert_after(&block->cf_node.node, &new_block->cf_node.node); in split_block_end() 411 node->parent = before->cf_node.parent; in insert_non_block() 412 exec_node_insert_after(&before->cf_node.node, &node->node); in insert_non_block() [all …]
|
D | nir_lower_memory_model.c | 148 lower_make_visible(nir_cf_node *cf_node, uint32_t *cur_modes) in lower_make_visible() argument 151 switch (cf_node->type) { in lower_make_visible() 153 nir_block *block = nir_cf_node_as_block(cf_node); in lower_make_visible() 159 nir_if *nif = nir_cf_node_as_if(cf_node); in lower_make_visible() 170 nir_loop *loop = nir_cf_node_as_loop(cf_node); in lower_make_visible() 188 lower_make_available(nir_cf_node *cf_node, uint32_t *cur_modes) in lower_make_available() argument 191 switch (cf_node->type) { in lower_make_available() 193 nir_block *block = nir_cf_node_as_block(cf_node); in lower_make_available() 199 nir_if *nif = nir_cf_node_as_if(cf_node); in lower_make_available() 210 nir_loop *loop = nir_cf_node_as_loop(cf_node); in lower_make_available() [all …]
|
D | nir_opt_dead_cf.c | 84 nir_remove_after_cf_node(&if_stmt->cf_node); in opt_constant_if() 89 nir_block *after = nir_cf_node_as_block(nir_cf_node_next(&if_stmt->cf_node)); in opt_constant_if() 110 nir_cf_reinsert(&list, nir_after_cf_node(&if_stmt->cf_node)); in opt_constant_if() 111 nir_cf_node_remove(&if_stmt->cf_node); in opt_constant_if() 118 for (nir_cf_node *cur = block->cf_node.parent; cur && cur != node->parent; in block_in_cf_node() 135 block = nir_cf_node_as_block(nir_cf_node_prev(&nir_src_parent_if(use)->cf_node)); in def_only_used_in_cf_node() 187 for (nir_cf_node *n = &block->cf_node; in node_is_dead() 267 !exec_node_is_tail_sentinel(block->cf_node.node.next)) { in dead_cf_block() 268 nir_remove_after_cf_node(&block->cf_node); in dead_cf_block() 282 if (node_is_dead(&following_if->cf_node)) { in dead_cf_block() [all …]
|
D | nir_opt_loop.c | 14 return nir_cf_node_is_last(&block->cf_node) && in is_block_empty() 21 return nir_cf_node_is_last(&block->cf_node) && in is_block_singular() 72 nir_block *after_if = nir_cf_node_cf_tree_next(&nif->cf_node); in opt_loop_merge_break_continue() 153 if (!is_block_empty(nir_cf_node_cf_tree_next(&nif->cf_node))) in opt_loop_terminator() 165 nir_remove_single_src_phis_block(nir_cf_node_as_block(nir_cf_node_next(&nif->cf_node))); in opt_loop_terminator() 171 nir_cf_reinsert(&tmp, nir_after_cf_node(&nif->cf_node)); in opt_loop_terminator() 249 …for (nir_cf_node *prev = nir_cf_node_prev(&block->cf_node); prev != NULL; prev = nir_cf_node_prev(… in opt_loop_last_block() 290 nir_cf_node *prev = nir_cf_node_prev(&block->cf_node); in opt_loop_last_block() 366 nir_block *prev_block = nir_cf_node_cf_tree_prev(&loop->cf_node); in opt_loop_peel_initial_break() 367 nir_block *exit_block = nir_cf_node_cf_tree_next(&loop->cf_node); in opt_loop_peel_initial_break() [all …]
|
D | nir_to_lcssa.c | 62 nir_cf_node_as_block(nir_cf_node_prev(&loop->cf_node)); in is_if_use_inside_loop() 64 nir_cf_node_as_block(nir_cf_node_next(&loop->cf_node)); in is_if_use_inside_loop() 67 nir_cf_node_as_block(nir_cf_node_prev(&nir_src_parent_if(use)->cf_node)); in is_if_use_inside_loop() 80 nir_cf_node_as_block(nir_cf_node_prev(&loop->cf_node)); in is_use_inside_loop() 82 nir_cf_node_as_block(nir_cf_node_next(&loop->cf_node)); in is_use_inside_loop() 97 nir_cf_node_as_block(nir_cf_node_prev(&loop->cf_node)); in is_defined_before_loop() 146 nir_cf_node *prev = nir_cf_node_prev(&instr->instr.block->cf_node); in phi_is_invariant() 277 nir_cf_node_as_block(nir_cf_node_next(&loop->cf_node)); in setup_loop_state() 306 convert_to_lcssa(nir_cf_node *cf_node, lcssa_state *state) in convert_to_lcssa() argument 308 switch (cf_node->type) { in convert_to_lcssa() [all …]
|
D | nir_opt_if.c | 43 nir_cf_node_as_block(nir_cf_node_prev(&loop->cf_node)); in find_continue_block() 143 nir_cf_node_as_block(nir_cf_node_prev(&loop->cf_node)); in opt_peel_loop_initial_if() 155 nir_cf_node *if_node = nir_cf_node_next(&header_block->cf_node); in opt_peel_loop_initial_if() 194 foreach_list_typed(nir_cf_node, cf_node, node, entry_list) { in opt_peel_loop_initial_if() 195 nir_foreach_block_in_cf_node(block, cf_node) { in opt_peel_loop_initial_if() 206 nir_cf_node_get_function(&loop->cf_node)); in opt_peel_loop_initial_if() 215 nir_cf_node_as_block(nir_cf_node_next(&nif->cf_node)); in opt_peel_loop_initial_if() 224 nir_foreach_block_in_cf_node(block, &nif->cf_node) in opt_peel_loop_initial_if() 231 nir_cf_list_clone(&tmp, &header, &loop->cf_node, NULL); in opt_peel_loop_initial_if() 232 nir_cf_reinsert(&tmp, nir_before_cf_node(&loop->cf_node)); in opt_peel_loop_initial_if() [all …]
|
D | nir_opt_copy_prop_vars.c | 154 nir_cf_node *cf_node) in gather_vars_written() argument 158 switch (cf_node->type) { in gather_vars_written() 160 nir_function_impl *impl = nir_cf_node_as_function(cf_node); in gather_vars_written() 161 foreach_list_typed_safe(nir_cf_node, cf_node, node, &impl->body) in gather_vars_written() 162 gather_vars_written(state, NULL, cf_node); in gather_vars_written() 170 nir_block *block = nir_cf_node_as_block(cf_node); in gather_vars_written() 259 nir_if *if_stmt = nir_cf_node_as_if(cf_node); in gather_vars_written() 263 foreach_list_typed_safe(nir_cf_node, cf_node, node, &if_stmt->then_list) in gather_vars_written() 264 gather_vars_written(state, new_written, cf_node); in gather_vars_written() 266 foreach_list_typed_safe(nir_cf_node, cf_node, node, &if_stmt->else_list) in gather_vars_written() [all …]
|
D | nir_dominance.c | 226 assert(nir_cf_node_get_function(&b1->cf_node) == in nir_dominance_lca() 227 nir_cf_node_get_function(&b2->cf_node)); in nir_dominance_lca() 229 assert(nir_cf_node_get_function(&b1->cf_node)->valid_metadata & in nir_dominance_lca() 249 assert(nir_cf_node_get_function(&parent->cf_node) == in nir_block_dominates() 250 nir_cf_node_get_function(&child->cf_node)); in nir_block_dominates() 252 assert(nir_cf_node_get_function(&parent->cf_node)->valid_metadata & in nir_block_dominates() 266 assert(nir_cf_node_get_function(&block->cf_node)->valid_metadata & in nir_block_is_unreachable() 268 assert(nir_cf_node_get_function(&block->cf_node)->valid_metadata & in nir_block_is_unreachable()
|
D | nir_opt_dce.c | 164 foreach_list_typed_reverse(nir_cf_node, cf_node, node, cf_list) { in dce_cf_list() 165 switch (cf_node->type) { in dce_cf_list() 167 nir_block *block = nir_cf_node_as_block(cf_node); in dce_cf_list() 172 nir_if *nif = nir_cf_node_as_if(cf_node); in dce_cf_list() 179 nir_loop *loop = nir_cf_node_as_loop(cf_node); in dce_cf_list() 183 inner_state.preheader = nir_cf_node_as_block(nir_cf_node_prev(cf_node)); in dce_cf_list() 211 nir_foreach_block_in_cf_node(block, cf_node) { in dce_cf_list()
|
D | nir_lower_returns.c | 73 nir_cf_extract(&list, nir_after_cf_node(&if_stmt->cf_node), in predicate_following() 97 predicate_following(&loop->cf_node, state); in lower_returns_in_loop() 128 predicate_following(&if_stmt->cf_node, state); in lower_returns_in_if() 139 ASSERTED nir_block *succ_block = nir_after_cf_node(&if_stmt->cf_node).block; in lower_returns_in_if() 144 nir_cf_extract(&list, nir_after_cf_node(&if_stmt->cf_node), in lower_returns_in_if() 170 nir_cf_extract(&list, nir_before_cf_node(&block->cf_node), in lower_returns_in_block() 226 assert(nir_cf_node_next(&block->cf_node) == NULL); in lower_returns_in_block()
|
D | nir_builder.c | 412 nir_builder_is_inside_cf(nir_builder *build, nir_cf_node *cf_node) in nir_builder_is_inside_cf() argument 415 for (nir_cf_node *n = &block->cf_node; n; n = n->parent) { in nir_builder_is_inside_cf() 416 if (n == cf_node) in nir_builder_is_inside_cf() 427 nir_builder_cf_insert(build, &nif->cf_node); in nir_push_if() 436 assert(nir_builder_is_inside_cf(build, &nif->cf_node)); in nir_push_else() 439 nif = nir_cf_node_as_if(block->cf_node.parent); in nir_push_else() 449 assert(nir_builder_is_inside_cf(build, &nif->cf_node)); in nir_pop_if() 452 nif = nir_cf_node_as_if(block->cf_node.parent); in nir_pop_if() 454 build->cursor = nir_after_cf_node(&nif->cf_node); in nir_pop_if() 461 nir_if *nif = nir_cf_node_as_if(nir_cf_node_prev(&block->cf_node)); in nir_if_phi() [all …]
|
D | nir_opt_conditional_discard.c | 38 if (nir_cf_node_is_first(&block->cf_node)) in nir_opt_conditional_discard_block() 41 nir_cf_node *prev_node = nir_cf_node_prev(&block->cf_node); in nir_opt_conditional_discard_block() 65 nir_block *after = nir_cf_node_as_block(nir_cf_node_next(&if_stmt->cf_node)); in nir_opt_conditional_discard_block() 107 nir_cf_node_remove(&if_stmt->cf_node); in nir_opt_conditional_discard_block()
|
D | nir_gather_tcs_info.c | 47 foreach_list_typed(nir_cf_node, cf_node, node, cf_list) { in scan_tess_levels() 48 switch (cf_node->type) { in scan_tess_levels() 50 nir_block *block = nir_cf_node_as_block(cf_node); in scan_tess_levels() 96 nir_if *if_stmt = nir_cf_node_as_if(cf_node); in scan_tess_levels() 118 nir_loop *loop = nir_cf_node_as_loop(cf_node); in scan_tess_levels() 194 if (block->cf_node.parent->type == nir_cf_node_function) in nir_gather_tcs_info()
|
D | nir_opt_peephole_select.c | 314 if (if_stmt->cf_node.parent->type != nir_cf_node_if) in nir_opt_collapse_if() 317 nir_if *parent_if = nir_cf_node_as_if(if_stmt->cf_node.parent); in nir_opt_collapse_if() 394 struct nir_builder b = nir_builder_at(nir_before_cf_node(&if_stmt->cf_node)); in nir_opt_collapse_if() 403 nir_cf_reinsert(&tmp, nir_before_cf_node(&parent_if->cf_node)); in nir_opt_collapse_if() 440 if (nir_cf_node_is_first(&block->cf_node)) in nir_opt_peephole_select_block() 443 nir_cf_node *prev_node = nir_cf_node_prev(&block->cf_node); in nir_opt_peephole_select_block() 541 nir_cf_node_remove(&if_stmt->cf_node); in nir_opt_peephole_select_block()
|
D | nir_opt_sink.c | 162 nir_block *before = nir_cf_node_as_block(nir_cf_node_prev(&loop->cf_node)); in loop_contains_block() 163 nir_block *after = nir_cf_node_as_block(nir_cf_node_next(&loop->cf_node)); in loop_contains_block() 180 def_loop = get_innermost_loop(&def_block->cf_node); in adjust_block_for_loops() 190 nir_cf_node *next = nir_cf_node_next(&cur_block->cf_node); in adjust_block_for_loops()
|
/external/mesa3d/src/compiler/glsl/ |
D | gl_nir_lower_discard_flow.c | 80 lower_discard_flow(nir_builder *b, nir_cf_node *cf_node, in lower_discard_flow() argument 83 switch (cf_node->type) { in lower_discard_flow() 85 nir_block *block = nir_cf_node_as_block(cf_node); in lower_discard_flow() 107 nir_if *if_stmt = nir_cf_node_as_if(cf_node); in lower_discard_flow() 115 nir_loop *loop = nir_cf_node_as_loop(cf_node); in lower_discard_flow() 155 foreach_list_typed(nir_cf_node, cf_node, node, &impl->body) { in gl_nir_lower_discard_flow() 156 lower_discard_flow(&b, cf_node, discarded); in gl_nir_lower_discard_flow()
|
/external/mesa3d/src/compiler/nir/tests/ |
D | control_flow_tests.cpp | 41 nir_cf_node_insert(nir_after_cf_list(&b->impl->body), &loop->cf_node); in TEST_F() 68 nir_block *block_2 = nir_cf_node_as_block(nir_cf_node_next(&loop->cf_node)); in TEST_F() 70 ASSERT_EQ(nir_cf_node_block, block_0->cf_node.type); in TEST_F() 71 ASSERT_EQ(nir_cf_node_block, block_1->cf_node.type); in TEST_F() 72 ASSERT_EQ(nir_cf_node_block, block_2->cf_node.type); in TEST_F() 73 ASSERT_EQ(nir_cf_node_block, block_3->cf_node.type); in TEST_F() 158 nir_block *block_after_loop = nir_cf_node_as_block(nir_cf_node_next(&loop->cf_node)); in TEST_F()
|
/external/mesa3d/src/amd/compiler/ |
D | aco_instruction_selection_setup.cpp | 91 nir_remove_single_src_phis_block(nir_cf_node_as_block(nir_cf_node_next(&nif->cf_node))); in sanitize_if() 100 nir_remove_after_cf_node(&nif->cf_node); in sanitize_if() 105 nir_cf_reinsert(&tmp, nir_after_cf_node(&nif->cf_node)); in sanitize_if() 114 foreach_list_typed (nir_cf_node, cf_node, node, cf_list) { in sanitize_cf_list() 115 switch (cf_node->type) { in sanitize_cf_list() 118 nir_if* nif = nir_cf_node_as_if(cf_node); in sanitize_cf_list() 125 nir_loop* loop = nir_cf_node_as_loop(cf_node); in sanitize_cf_list() 132 if (nir_cf_node_cf_tree_next(&loop->cf_node)->predecessors->entries == 0) { in sanitize_cf_list() 654 if (nir_cf_node_prev(&block->cf_node) && in init_context() 655 nir_cf_node_prev(&block->cf_node)->type == nir_cf_node_if) { in init_context() [all …]
|