From: Jason Ekstrand Date: Wed, 4 Feb 2015 05:04:57 +0000 (-0800) Subject: nir: use nir_foreach_ssa_def for indexing ssa defs X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e025943134ada9dad02926e8191dd1bd2e7fc95e;p=mesa.git nir: use nir_foreach_ssa_def for indexing ssa defs This is both simpler and more correct. The old code didn't properly index load_const instructions. Reviewed-by: Connor Abbott --- diff --git a/src/glsl/nir/nir.c b/src/glsl/nir/nir.c index 0d8c80ae55b..3b78766e6a2 100644 --- a/src/glsl/nir/nir.c +++ b/src/glsl/nir/nir.c @@ -2004,38 +2004,20 @@ nir_index_blocks(nir_function_impl *impl) impl->num_blocks = index; } -static void -index_ssa_def(nir_ssa_def *def, unsigned *index) +static bool +index_ssa_def_cb(nir_ssa_def *def, void *state) { + unsigned *index = (unsigned *) state; def->index = (*index)++; -} -static bool -index_ssa_def_cb(nir_dest *dest, void *state) -{ - unsigned *index = state; - if (dest->is_ssa) - index_ssa_def(&dest->ssa, index); return true; } -static void -index_ssa_undef(nir_ssa_undef_instr *instr, unsigned *index) -{ - index_ssa_def(&instr->def, index); -} - static bool index_ssa_block(nir_block *block, void *state) { - unsigned *index = state; - - nir_foreach_instr(block, instr) { - if (instr->type == nir_instr_type_ssa_undef) - index_ssa_undef(nir_instr_as_ssa_undef(instr), index); - else - nir_foreach_dest(instr, index_ssa_def_cb, state); - } + nir_foreach_instr(block, instr) + nir_foreach_ssa_def(instr, index_ssa_def_cb, state); return true; }