From 41b6020ff3bc93c2ba067be7825e76ff2de50a69 Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Thu, 8 Sep 2022 18:05:59 +0100 Subject: [PATCH] aco: remove fast path in insert_exec_mask's process_instructions Signed-off-by: Rhys Perry Part-of: --- src/amd/compiler/aco_insert_exec_mask.cpp | 13 ------------- src/amd/compiler/aco_instruction_selection.cpp | 2 -- src/amd/compiler/aco_ir.h | 5 ++--- src/amd/compiler/aco_print_ir.cpp | 2 -- 4 files changed, 2 insertions(+), 20 deletions(-) diff --git a/src/amd/compiler/aco_insert_exec_mask.cpp b/src/amd/compiler/aco_insert_exec_mask.cpp index af717724104..4a495be20e1 100644 --- a/src/amd/compiler/aco_insert_exec_mask.cpp +++ b/src/amd/compiler/aco_insert_exec_mask.cpp @@ -537,19 +537,6 @@ process_instructions(exec_ctx& ctx, Block* block, std::vectorindex].block_needs & state) != - (ctx.info[block->index].block_needs & (WQM | Exact))) || - block->kind & block_kind_uses_discard || block->kind & block_kind_needs_lowering; - if (!process) { - std::vector>::iterator it = std::next(block->instructions.begin(), idx); - instructions.insert(instructions.end(), - std::move_iterator>::iterator>(it), - std::move_iterator>::iterator>( - block->instructions.end())); - return; - } - Builder bld(ctx.program, &instructions); for (; idx < block->instructions.size(); idx++) { diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index c62abb34f23..2e12d7da09c 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -8712,7 +8712,6 @@ visit_intrinsic(isel_context* ctx, nir_intrinsic_instr* instr) * Otherwise, these two behave the same. */ Temp dst = get_ssa_temp(ctx, &instr->def); bld.pseudo(aco_opcode::p_is_helper, Definition(dst), Operand(exec, bld.lm)); - ctx->block->kind |= block_kind_needs_lowering; ctx->program->needs_exact = true; break; } @@ -8778,7 +8777,6 @@ visit_intrinsic(isel_context* ctx, nir_intrinsic_instr* instr) */ Temp elected = bld.pseudo(aco_opcode::p_elect, bld.def(bld.lm), Operand(exec, bld.lm)); emit_wqm(bld, elected, get_ssa_temp(ctx, &instr->def)); - ctx->block->kind |= block_kind_needs_lowering; break; } case nir_intrinsic_shader_clock: { diff --git a/src/amd/compiler/aco_ir.h b/src/amd/compiler/aco_ir.h index df902cbedf0..b8f6bc3d2e7 100644 --- a/src/amd/compiler/aco_ir.h +++ b/src/amd/compiler/aco_ir.h @@ -1885,9 +1885,8 @@ enum block_kind { block_kind_invert = 1 << 10, block_kind_discard_early_exit = 1 << 11, block_kind_uses_discard = 1 << 12, - block_kind_needs_lowering = 1 << 13, - block_kind_resume = 1 << 14, - block_kind_export_end = 1 << 15, + block_kind_resume = 1 << 13, + block_kind_export_end = 1 << 14, }; struct RegisterDemand { diff --git a/src/amd/compiler/aco_print_ir.cpp b/src/amd/compiler/aco_print_ir.cpp index 0654dfc9457..ef8132f694f 100644 --- a/src/amd/compiler/aco_print_ir.cpp +++ b/src/amd/compiler/aco_print_ir.cpp @@ -851,8 +851,6 @@ print_block_kind(uint16_t kind, FILE* output) fprintf(output, "invert, "); if (kind & block_kind_uses_discard) fprintf(output, "discard, "); - if (kind & block_kind_needs_lowering) - fprintf(output, "needs_lowering, "); if (kind & block_kind_export_end) fprintf(output, "export_end, "); }