From 13c31379603bbea4ce2f03b3c6a0443888217e0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Mon, 31 Jan 2022 16:30:08 +0100 Subject: [PATCH] aco: merge block_kind_uses_[demote|discard_if] These serve the same purpose. The new name is block_kind_uses_discard. Reviewed-by: Rhys Perry Part-of: --- src/amd/compiler/aco_insert_exec_mask.cpp | 7 +++---- src/amd/compiler/aco_instruction_selection.cpp | 6 +++--- src/amd/compiler/aco_ir.h | 3 +-- src/amd/compiler/aco_print_ir.cpp | 6 ++---- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/amd/compiler/aco_insert_exec_mask.cpp b/src/amd/compiler/aco_insert_exec_mask.cpp index 5d78c14311e..c9860398a58 100644 --- a/src/amd/compiler/aco_insert_exec_mask.cpp +++ b/src/amd/compiler/aco_insert_exec_mask.cpp @@ -320,7 +320,7 @@ calculate_wqm_needs(exec_ctx& exec_ctx) exec_ctx.info[i].block_needs |= Exact; ever_again_needs |= exec_ctx.info[i].block_needs & ~Exact_Branch; - if (block.kind & block_kind_uses_discard_if || block.kind & block_kind_uses_demote) + if (block.kind & block_kind_uses_discard) ever_again_needs |= Exact; /* don't propagate WQM preservation further than the next top_level block */ @@ -691,8 +691,7 @@ 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_if || - block->kind & block_kind_uses_demote || block->kind & block_kind_needs_lowering; + 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(), @@ -887,7 +886,7 @@ add_branch_code(exec_ctx& ctx, Block* block) Block& loop_block = ctx.program->blocks[i]; needs |= ctx.info[i].block_needs; - if (loop_block.kind & block_kind_uses_discard_if || loop_block.kind & block_kind_uses_demote) + if (loop_block.kind & block_kind_uses_discard) has_discard = true; if (loop_block.loop_nest_depth != loop_nest_depth) continue; diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index 215c35f9ea5..851defefcec 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -8670,7 +8670,7 @@ visit_intrinsic(isel_context* ctx, nir_intrinsic_instr* instr) if (ctx->block->loop_nest_depth || ctx->cf_info.parent_if.is_divergent) ctx->cf_info.exec_potentially_empty_discard = true; - ctx->block->kind |= block_kind_uses_demote; + ctx->block->kind |= block_kind_uses_discard; ctx->program->needs_exact = true; break; case nir_intrinsic_demote_if: { @@ -8682,7 +8682,7 @@ visit_intrinsic(isel_context* ctx, nir_intrinsic_instr* instr) if (ctx->block->loop_nest_depth || ctx->cf_info.parent_if.is_divergent) ctx->cf_info.exec_potentially_empty_discard = true; - ctx->block->kind |= block_kind_uses_demote; + ctx->block->kind |= block_kind_uses_discard; ctx->program->needs_exact = true; break; } @@ -8703,7 +8703,7 @@ visit_intrinsic(isel_context* ctx, nir_intrinsic_instr* instr) if (ctx->block->loop_nest_depth || ctx->cf_info.parent_if.is_divergent) ctx->cf_info.exec_potentially_empty_discard = true; - ctx->block->kind |= block_kind_uses_discard_if; + ctx->block->kind |= block_kind_uses_discard; ctx->program->needs_exact = true; break; } diff --git a/src/amd/compiler/aco_ir.h b/src/amd/compiler/aco_ir.h index c979e60a091..e716ad295d4 100644 --- a/src/amd/compiler/aco_ir.h +++ b/src/amd/compiler/aco_ir.h @@ -1814,9 +1814,8 @@ enum block_kind { block_kind_branch = 1 << 8, block_kind_merge = 1 << 9, block_kind_invert = 1 << 10, - block_kind_uses_discard_if = 1 << 12, + block_kind_uses_discard = 1 << 12, block_kind_needs_lowering = 1 << 13, - block_kind_uses_demote = 1 << 14, block_kind_export_end = 1 << 15, }; diff --git a/src/amd/compiler/aco_print_ir.cpp b/src/amd/compiler/aco_print_ir.cpp index 085697b68c8..e3114b7c9c0 100644 --- a/src/amd/compiler/aco_print_ir.cpp +++ b/src/amd/compiler/aco_print_ir.cpp @@ -750,12 +750,10 @@ print_block_kind(uint16_t kind, FILE* output) fprintf(output, "merge, "); if (kind & block_kind_invert) fprintf(output, "invert, "); - if (kind & block_kind_uses_discard_if) - fprintf(output, "discard_if, "); + if (kind & block_kind_uses_discard) + fprintf(output, "discard, "); if (kind & block_kind_needs_lowering) fprintf(output, "needs_lowering, "); - if (kind & block_kind_uses_demote) - fprintf(output, "uses_demote, "); if (kind & block_kind_export_end) fprintf(output, "export_end, "); }