diff options
author | Connor Abbott <cwabbott0@gmail.com> | 2016-04-08 17:25:10 -0400 |
---|---|---|
committer | Jason Ekstrand <jason.ekstrand@intel.com> | 2016-04-28 15:52:17 -0700 |
commit | 492b3554a7c61ca5fb3687d6fc696d51713c8136 (patch) | |
tree | 1804c661cfe0f389c3351481a2f06226820c20aa /src/compiler/nir/nir_lower_var_copies.c | |
parent | c1b37c08bf34a3244476f10a7084803b8a58b3d8 (diff) | |
download | external_mesa3d-492b3554a7c61ca5fb3687d6fc696d51713c8136.zip external_mesa3d-492b3554a7c61ca5fb3687d6fc696d51713c8136.tar.gz external_mesa3d-492b3554a7c61ca5fb3687d6fc696d51713c8136.tar.bz2 |
nir/lower_var_copies: fixup for new foreach_block()
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Diffstat (limited to 'src/compiler/nir/nir_lower_var_copies.c')
-rw-r--r-- | src/compiler/nir/nir_lower_var_copies.c | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/src/compiler/nir/nir_lower_var_copies.c b/src/compiler/nir/nir_lower_var_copies.c index a5e3805..d0d6452 100644 --- a/src/compiler/nir/nir_lower_var_copies.c +++ b/src/compiler/nir/nir_lower_var_copies.c @@ -154,30 +154,26 @@ nir_lower_var_copy_instr(nir_intrinsic_instr *copy, void *mem_ctx) ©->variables[1]->deref, mem_ctx); } -static bool -lower_var_copies_block(nir_block *block, void *mem_ctx) +static void +lower_var_copies_impl(nir_function_impl *impl) { - nir_foreach_instr_safe(block, instr) { - if (instr->type != nir_instr_type_intrinsic) - continue; + void *mem_ctx = ralloc_parent(impl); - nir_intrinsic_instr *copy = nir_instr_as_intrinsic(instr); - if (copy->intrinsic != nir_intrinsic_copy_var) - continue; - - nir_lower_var_copy_instr(copy, mem_ctx); + nir_foreach_block(block, impl) { + nir_foreach_instr_safe(block, instr) { + if (instr->type != nir_instr_type_intrinsic) + continue; - nir_instr_remove(©->instr); - ralloc_free(copy); - } + nir_intrinsic_instr *copy = nir_instr_as_intrinsic(instr); + if (copy->intrinsic != nir_intrinsic_copy_var) + continue; - return true; -} + nir_lower_var_copy_instr(copy, mem_ctx); -static void -lower_var_copies_impl(nir_function_impl *impl) -{ - nir_foreach_block_call(impl, lower_var_copies_block, ralloc_parent(impl)); + nir_instr_remove(©->instr); + ralloc_free(copy); + } + } } /* Lowers every copy_var instruction in the program to a sequence of |