diff options
author | Connor Abbott <[email protected]> | 2016-04-08 16:15:14 -0400 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2016-04-28 15:52:17 -0700 |
commit | 7e909972e3cb1df501293e6f8364da317cd7244e (patch) | |
tree | 2e7978dcfaa5b84b300a1ca9aefe0a3a40151f46 /src/compiler | |
parent | 76c74de456534cc37f7a2610aff4452d3a034c46 (diff) |
nir/lower_system_values: fixup for new foreach_block()
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/nir/nir_lower_system_values.c | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/src/compiler/nir/nir_lower_system_values.c b/src/compiler/nir/nir_lower_system_values.c index b86049b061b..ba8b4032f6b 100644 --- a/src/compiler/nir/nir_lower_system_values.c +++ b/src/compiler/nir/nir_lower_system_values.c @@ -28,17 +28,10 @@ #include "nir.h" #include "nir_builder.h" -struct lower_system_values_state { - nir_builder builder; - bool progress; -}; - static bool -convert_block(nir_block *block, void *void_state) +convert_block(nir_block *block, nir_builder *b) { - struct lower_system_values_state *state = void_state; - - nir_builder *b = &state->builder; + bool progress = false; nir_foreach_instr_safe(block, instr) { if (instr->type != nir_instr_type_intrinsic) @@ -129,24 +122,26 @@ convert_block(nir_block *block, void *void_state) nir_ssa_def_rewrite_uses(&load_var->dest.ssa, nir_src_for_ssa(sysval)); nir_instr_remove(&load_var->instr); - state->progress = true; + progress = true; } - return true; + return progress; } static bool convert_impl(nir_function_impl *impl) { - struct lower_system_values_state state; + bool progress = false; + nir_builder builder; + nir_builder_init(&builder, impl); - state.progress = false; - nir_builder_init(&state.builder, impl); + nir_foreach_block(block, impl) { + progress |= convert_block(block, &builder); + } - nir_foreach_block_call(impl, convert_block, &state); nir_metadata_preserve(impl, nir_metadata_block_index | nir_metadata_dominance); - return state.progress; + return progress; } bool |