summaryrefslogtreecommitdiffstats
path: root/src/compiler/nir/nir_lower_var_copies.c
diff options
context:
space:
mode:
authorConnor Abbott <cwabbott0@gmail.com>2016-04-08 17:25:10 -0400
committerJason Ekstrand <jason.ekstrand@intel.com>2016-04-28 15:52:17 -0700
commit492b3554a7c61ca5fb3687d6fc696d51713c8136 (patch)
tree1804c661cfe0f389c3351481a2f06226820c20aa /src/compiler/nir/nir_lower_var_copies.c
parentc1b37c08bf34a3244476f10a7084803b8a58b3d8 (diff)
downloadexternal_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.c34
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)
&copy->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(&copy->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(&copy->instr);
+ ralloc_free(copy);
+ }
+ }
}
/* Lowers every copy_var instruction in the program to a sequence of