From 0a63d629fe7ffe1f9765a71c8e44784bebfd0f8a Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Tue, 11 Mar 2025 15:53:42 -0400 Subject: [PATCH] intel/compiler: Use unreachable instead of assert(!"...") Reviewed-by: Caio Oliveira Part-of: --- src/intel/compiler/brw_eu_emit.c | 3 +-- src/intel/compiler/brw_nir.c | 3 +-- src/intel/compiler/brw_opt_algebraic.cpp | 2 +- src/intel/compiler/brw_reg.cpp | 6 +++--- src/intel/compiler/elk/elk_eu_emit.c | 3 +-- src/intel/compiler/elk/elk_fs.cpp | 2 +- src/intel/compiler/elk/elk_nir.c | 3 +-- src/intel/compiler/elk/elk_shader.cpp | 6 +++--- src/intel/compiler/elk/elk_vec4.cpp | 2 +- 9 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/intel/compiler/brw_eu_emit.c b/src/intel/compiler/brw_eu_emit.c index 425ea3c1a21..463feed8703 100644 --- a/src/intel/compiler/brw_eu_emit.c +++ b/src/intel/compiler/brw_eu_emit.c @@ -1608,8 +1608,7 @@ brw_find_loop_end(struct brw_codegen *p, int start_offset) return offset; } } - assert(!"not reached"); - return start_offset; + unreachable("not reached"); } /* After program generation, go back and update the UIP and JIP of diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c index dd51e896d95..80a0d5c77ac 100644 --- a/src/intel/compiler/brw_nir.c +++ b/src/intel/compiler/brw_nir.c @@ -991,8 +991,7 @@ lower_bit_size_callback(const nir_instr *instr, UNUSED void *data) case nir_op_fcos: return 0; case nir_op_isign: - assert(!"Should have been lowered by nir_opt_algebraic."); - return 0; + unreachable("Should have been lowered by nir_opt_algebraic."); default: if (nir_op_infos[alu->op].num_inputs >= 2 && alu->def.bit_size == 8) diff --git a/src/intel/compiler/brw_opt_algebraic.cpp b/src/intel/compiler/brw_opt_algebraic.cpp index 187611fb99a..78d3232b4c4 100644 --- a/src/intel/compiler/brw_opt_algebraic.cpp +++ b/src/intel/compiler/brw_opt_algebraic.cpp @@ -419,7 +419,7 @@ brw_opt_algebraic(brw_shader &s) if (inst->dst.type != inst->src[0].type && inst->dst.type != BRW_TYPE_DF && inst->src[0].type != BRW_TYPE_F) - assert(!"unimplemented: saturate mixed types"); + unreachable("unimplemented: saturate mixed types"); if (brw_reg_saturate_immediate(&inst->src[0])) { inst->saturate = false; diff --git a/src/intel/compiler/brw_reg.cpp b/src/intel/compiler/brw_reg.cpp index 0b513001a30..b115f03b510 100644 --- a/src/intel/compiler/brw_reg.cpp +++ b/src/intel/compiler/brw_reg.cpp @@ -103,7 +103,7 @@ brw_reg_negate_immediate(brw_reg *reg) unreachable("no UB/B immediates"); case BRW_TYPE_UV: case BRW_TYPE_V: - assert(!"unimplemented: negate UV/V immediate"); + unreachable("unimplemented: negate UV/V immediate"); case BRW_TYPE_HF: reg->ud ^= 0x80008000; return true; @@ -148,9 +148,9 @@ brw_reg_abs_immediate(brw_reg *reg) /* Presumably the absolute value modifier on an unsigned source is a * nop, but it would be nice to confirm. */ - assert(!"unimplemented: abs unsigned immediate"); + unreachable("unimplemented: abs unsigned immediate"); case BRW_TYPE_V: - assert(!"unimplemented: abs V immediate"); + unreachable("unimplemented: abs V immediate"); case BRW_TYPE_HF: reg->ud &= ~0x80008000; return true; diff --git a/src/intel/compiler/elk/elk_eu_emit.c b/src/intel/compiler/elk/elk_eu_emit.c index f7814d18591..652a539be29 100644 --- a/src/intel/compiler/elk/elk_eu_emit.c +++ b/src/intel/compiler/elk/elk_eu_emit.c @@ -2578,8 +2578,7 @@ elk_find_loop_end(struct elk_codegen *p, int start_offset) return offset; } } - assert(!"not reached"); - return start_offset; + unreachable("not reached"); } /* After program generation, go back and update the UIP and JIP of diff --git a/src/intel/compiler/elk/elk_fs.cpp b/src/intel/compiler/elk/elk_fs.cpp index b840ef602b6..37855d22942 100644 --- a/src/intel/compiler/elk/elk_fs.cpp +++ b/src/intel/compiler/elk/elk_fs.cpp @@ -2228,7 +2228,7 @@ elk_fs_visitor::opt_algebraic() if (inst->dst.type != inst->src[0].type && inst->dst.type != ELK_REGISTER_TYPE_DF && inst->src[0].type != ELK_REGISTER_TYPE_F) - assert(!"unimplemented: saturate mixed types"); + unreachable("unimplemented: saturate mixed types"); if (elk_saturate_immediate(inst->src[0].type, &inst->src[0].as_elk_reg())) { diff --git a/src/intel/compiler/elk/elk_nir.c b/src/intel/compiler/elk/elk_nir.c index c1756c9706d..24aa5d2de9f 100644 --- a/src/intel/compiler/elk/elk_nir.c +++ b/src/intel/compiler/elk/elk_nir.c @@ -781,8 +781,7 @@ lower_bit_size_callback(const nir_instr *instr, UNUSED void *data) case nir_op_fcos: return 32; case nir_op_isign: - assert(!"Should have been lowered by nir_opt_algebraic."); - return 0; + unreachable("Should have been lowered by nir_opt_algebraic."); default: if (nir_op_infos[alu->op].num_inputs >= 2 && alu->def.bit_size == 8) diff --git a/src/intel/compiler/elk/elk_shader.cpp b/src/intel/compiler/elk/elk_shader.cpp index 6e269992557..8b0fe866e37 100644 --- a/src/intel/compiler/elk/elk_shader.cpp +++ b/src/intel/compiler/elk/elk_shader.cpp @@ -615,7 +615,7 @@ elk_negate_immediate(enum elk_reg_type type, struct elk_reg *reg) unreachable("no UB/B immediates"); case ELK_REGISTER_TYPE_UV: case ELK_REGISTER_TYPE_V: - assert(!"unimplemented: negate UV/V immediate"); + unreachable("unimplemented: negate UV/V immediate"); case ELK_REGISTER_TYPE_HF: reg->ud ^= 0x80008000; return true; @@ -660,9 +660,9 @@ elk_abs_immediate(enum elk_reg_type type, struct elk_reg *reg) /* Presumably the absolute value modifier on an unsigned source is a * nop, but it would be nice to confirm. */ - assert(!"unimplemented: abs unsigned immediate"); + unreachable("unimplemented: abs unsigned immediate"); case ELK_REGISTER_TYPE_V: - assert(!"unimplemented: abs V immediate"); + unreachable("unimplemented: abs V immediate"); case ELK_REGISTER_TYPE_HF: reg->ud &= ~0x80008000; return true; diff --git a/src/intel/compiler/elk/elk_vec4.cpp b/src/intel/compiler/elk/elk_vec4.cpp index 37cf445a7f2..eb0c7c98c9e 100644 --- a/src/intel/compiler/elk/elk_vec4.cpp +++ b/src/intel/compiler/elk/elk_vec4.cpp @@ -648,7 +648,7 @@ vec4_visitor::opt_algebraic() if (inst->dst.type != inst->src[0].type && inst->dst.type != ELK_REGISTER_TYPE_DF && inst->src[0].type != ELK_REGISTER_TYPE_F) - assert(!"unimplemented: saturate mixed types"); + unreachable("unimplemented: saturate mixed types"); if (elk_saturate_immediate(inst->src[0].type, &inst->src[0].as_elk_reg())) {