Lines Matching defs:block
33 delete_block(struct ir3 *ir, struct ir3_block *block)
36 foreach_instr (instr, &block->instr_list) {
43 /* The end block can be legitimately unreachable if the shader only exits via
45 * block around but delete all the other instructions and make the end not
50 foreach_instr_safe (instr, &block->instr_list) {
59 struct ir3_block *succ = block->successors[i];
63 unsigned pred_idx = ir3_block_get_pred_index(succ, block);
86 struct ir3_block *succ = block->physical_successors[i];
90 ir3_block_remove_physical_predecessor(succ, block);
93 if (block->physical_predecessors_count != 0) {
97 assert(block->physical_predecessors_count == 1);
98 struct ir3_block *pred = block->physical_predecessors[0];
99 assert(block->node.next != &ir->block_list);
100 struct ir3_block *next = list_entry(block->node.next, struct ir3_block, node);
101 if (pred->physical_successors[1] == block)
113 foreach_block_safe (block, &ir->block_list) {
114 if (block != ir3_start_block(ir) && block->predecessors_count == 0) {
115 delete_block(ir, block);
116 list_del(&block->node);