Mesa (main): aco: merge block_kind_uses_[demote|discard_if]
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Feb 8 16:39:36 UTC 2022
Module: Mesa
Branch: main
Commit: 13c31379603bbea4ce2f03b3c6a0443888217e0a
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=13c31379603bbea4ce2f03b3c6a0443888217e0a
Author: Daniel Schürmann <daniel at schuermann.dev>
Date: Mon Jan 31 16:30:08 2022 +0100
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 <pendingchaos02 at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14805>
---
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::vector<aco_ptr<Instructio
/* if the block doesn't need both, WQM and Exact, we can skip processing the instructions */
bool process = (ctx.handle_wqm && (ctx.info[block->index].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<aco_ptr<Instruction>>::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, ");
}
More information about the mesa-commit
mailing list