From 8cb8c710fb49af5bf675f0d3d3e8298d7f3f8e29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Wed, 18 Feb 2026 12:20:45 +0100 Subject: [PATCH] aco: remove remaining occurences of block_kind_continue It has no purpose anymore. Part-of: --- src/amd/compiler/aco_ir.h | 3 +-- src/amd/compiler/aco_print_ir.cpp | 2 -- .../instruction_selection/aco_isel_cfg.cpp | 2 +- src/amd/compiler/tests/test_isel.cpp | 20 +++++++++---------- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/amd/compiler/aco_ir.h b/src/amd/compiler/aco_ir.h index e12c0e7d6bc..2969bf852e7 100644 --- a/src/amd/compiler/aco_ir.h +++ b/src/amd/compiler/aco_ir.h @@ -2134,7 +2134,7 @@ enum block_kind { block_kind_loop_preheader = 1 << 2, block_kind_loop_header = 1 << 3, block_kind_loop_exit = 1 << 4, - block_kind_continue = 1 << 5, + block_kind_loop_latch = 1 << 5, block_kind_break = 1 << 6, block_kind_branch = 1 << 7, block_kind_merge = 1 << 8, @@ -2145,7 +2145,6 @@ enum block_kind { block_kind_export_end = 1 << 13, block_kind_end_with_regs = 1 << 14, block_kind_contains_call = 1 << 15, - block_kind_loop_latch = 1 << 16, }; /* CFG */ diff --git a/src/amd/compiler/aco_print_ir.cpp b/src/amd/compiler/aco_print_ir.cpp index 388dc490694..a7afa2c24e1 100644 --- a/src/amd/compiler/aco_print_ir.cpp +++ b/src/amd/compiler/aco_print_ir.cpp @@ -840,8 +840,6 @@ print_block_kind(uint32_t kind, FILE* output) fprintf(output, "loop-latch, "); if (kind & block_kind_loop_exit) fprintf(output, "loop-exit, "); - if (kind & block_kind_continue) - fprintf(output, "continue, "); if (kind & block_kind_break) fprintf(output, "break, "); if (kind & block_kind_branch) diff --git a/src/amd/compiler/instruction_selection/aco_isel_cfg.cpp b/src/amd/compiler/instruction_selection/aco_isel_cfg.cpp index 94bf6e06f5b..e4092cb746e 100644 --- a/src/amd/compiler/instruction_selection/aco_isel_cfg.cpp +++ b/src/amd/compiler/instruction_selection/aco_isel_cfg.cpp @@ -129,7 +129,7 @@ end_loop(isel_context* ctx) if (!ctx->cf_info.has_branch) { Builder bld(ctx->program, ctx->block); - ctx->block->kind |= (block_kind_continue | block_kind_uniform); + ctx->block->kind |= block_kind_uniform; if (!ctx->cf_info.has_divergent_branch) { append_logical_end(ctx); add_edge(ctx->block->index, &header); diff --git a/src/amd/compiler/tests/test_isel.cpp b/src/amd/compiler/tests/test_isel.cpp index a40de44169d..0e33d8a108f 100644 --- a/src/amd/compiler/tests/test_isel.cpp +++ b/src/amd/compiler/tests/test_isel.cpp @@ -473,7 +473,7 @@ BEGIN_TEST(isel.cf.unreachable_break.uniform_continue) //! BB5 //! /* logical preds: BB4, / linear preds: BB4, / kind: uniform, break, */ //>> BB6 - //! /* logical preds: BB4, / linear preds: BB4, / kind: uniform, continue, */ + //! /* logical preds: BB4, / linear preds: BB4, / kind: uniform, */ val0 = nir_imm_zero(nb, 1, 32); val1 = nir_load_local_invocation_id(nb); @@ -712,7 +712,7 @@ BEGIN_TEST(isel.cf.unreachable_loop_exit) //! BB2 //! /* logical preds: BB1, / linear preds: BB1, / kind: uniform, break, */ //>> BB3 - //! /* logical preds: BB1, / linear preds: BB1, / kind: uniform, continue, */ + //! /* logical preds: BB1, / linear preds: BB1, / kind: uniform, */ nir_unit_test_uniform_input(nb, 1, 32, .base=0); nir_jump(nb, nir_jump_continue); } @@ -748,7 +748,7 @@ BEGIN_TEST(isel.cf.divergent_if_branch_use) { /* The contents of this branch is moved to the merge block. */ //>> BB6 - //! /* logical preds: BB1, / linear preds: BB4, BB5, / kind: uniform, continue, merge, */ + //! /* logical preds: BB1, / linear preds: BB4, BB5, / kind: uniform, merge, */ //! p_logical_start //! s1: %val = p_unit_test 0 val = nir_unit_test_uniform_input(nb, 1, 32, .base=0); @@ -838,7 +838,7 @@ BEGIN_TEST(isel.cf.uniform_if_branch_use) nir_unit_test_output(nb, val, .base=1); //>> BB15 - //! /* logical preds: BB2, BB13, / linear preds: BB13, BB14, / kind: uniform, continue, merge, */ + //! /* logical preds: BB2, BB13, / linear preds: BB13, BB14, / kind: uniform, merge, */ } nir_pop_loop(nb, loop); @@ -894,7 +894,7 @@ BEGIN_TEST(isel.cf.hidden_continue) nir_push_if(nb, nir_unit_test_divergent_input(nb, 1, 1, .base = 4)); { //>> BB6 - //! /* logical preds: BB1, / linear preds: BB4, BB5, / kind: uniform, continue, merge, */ + //! /* logical preds: BB1, / linear preds: BB4, BB5, / kind: uniform, merge, */ //! p_logical_start //! s1: %cont = p_unit_test 1 nir_def* cont = nir_unit_test_uniform_input(nb, 1, 32, .base = 1); @@ -1016,7 +1016,7 @@ BEGIN_TEST(isel.cf.divergent_if_phi.break) /* As the ELSE gets omitted, the logical predecessor dominates both linear predecessors. */ //>> BB6 - //! /* logical preds: BB1, / linear preds: BB4, BB5, / kind: uniform, continue, merge, */ + //! /* logical preds: BB1, / linear preds: BB4, BB5, / kind: uniform, merge, */ //! s1: %phi = p_linear_phi %val, %val nir_phi_instr* phi = nir_phi_instr_create(nb->shader); nir_phi_instr_add_src(phi, nir_if_last_else_block(nif), val); @@ -1258,7 +1258,7 @@ BEGIN_TEST(isel.cf.empty_exec.loop_break) } nir_pop_if(nb, NULL); //>> BB15 - //! /* logical preds: BB10, BB13, / linear preds: BB13, BB14, / kind: uniform, continue, merge, */ + //! /* logical preds: BB10, BB13, / linear preds: BB13, BB14, / kind: uniform, merge, */ //! p_logical_start //! p_unit_test 4, %_ @@ -1353,7 +1353,7 @@ BEGIN_TEST(isel.cf.empty_exec.loop_continue) //>> p_unit_test 4, %_ nir_unit_test_output(nb, nir_undef(nb, 1, 32), .base = 4); //>> BB21 - //! /* logical preds: BB16, BB19, / linear preds: BB19, BB20, / kind: uniform, continue, merge, */ + //! /* logical preds: BB16, BB19, / linear preds: BB19, BB20, / kind: uniform, merge, */ } nir_pop_loop(nb, loop); //>> BB22 @@ -1431,7 +1431,7 @@ BEGIN_TEST(isel.cf.empty_exec.loop_continue_then_break) nir_unit_test_output(nb, nir_undef(nb, 1, 32), .base = 4); //>> BB15 - //! /* logical preds: BB2, BB13, / linear preds: BB13, BB14, / kind: uniform, continue, merge, */ + //! /* logical preds: BB2, BB13, / linear preds: BB13, BB14, / kind: uniform, merge, */ } nir_pop_loop(nb, loop); //>> BB16 @@ -1567,7 +1567,7 @@ BEGIN_TEST(isel.cf.empty_exec.terminate_then_loop) nir_break_if(nb, nir_imm_false(nb)); //>> BB5 - //! /* logical preds: BB3, / linear preds: BB3, / kind: uniform, continue, */ + //! /* logical preds: BB3, / linear preds: BB3, / kind: uniform, */ //>> p_unit_test 2, %1 nir_unit_test_output(nb, nir_undef(nb, 1, 32), .base = 2); }