From be96b069ad4e41f9d440d04b5dbbffe599774473 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 10 Jun 2020 12:47:50 -0500 Subject: [PATCH] nir: Assert that nir_lower_io is only called with allowed modes Reviewed-by: Alyssa Rosenzweig Reviewed-by: Eric Anholt Reviewed-by: Connor Abbott Part-of: --- src/compiler/nir/nir_lower_io.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/compiler/nir/nir_lower_io.c b/src/compiler/nir/nir_lower_io.c index 6a0e1814413..101460afa97 100644 --- a/src/compiler/nir/nir_lower_io.c +++ b/src/compiler/nir/nir_lower_io.c @@ -626,16 +626,10 @@ nir_lower_io_block(nir_block *block, nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); nir_variable_mode mode = deref->mode; - + assert(util_is_power_of_two_nonzero(mode)); if ((state->modes & mode) == 0) continue; - if (mode != nir_var_shader_in && - mode != nir_var_shader_out && - mode != nir_var_mem_shared && - mode != nir_var_uniform) - continue; - nir_variable *var = nir_deref_instr_get_variable(deref); b->cursor = nir_before_instr(instr); @@ -723,6 +717,11 @@ nir_lower_io_impl(nir_function_impl *impl, state.type_size = type_size; state.options = options; + ASSERTED nir_variable_mode supported_modes = + nir_var_shader_in | nir_var_shader_out | + nir_var_mem_shared | nir_var_uniform; + assert(!(modes & ~supported_modes)); + nir_foreach_block(block, impl) { progress |= nir_lower_io_block(block, &state); } -- 2.30.2