summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/compiler/nir/nir_opt_undef.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/src/compiler/nir/nir_opt_undef.c b/src/compiler/nir/nir_opt_undef.c
index 38208f8..87c23b3 100644
--- a/src/compiler/nir/nir_opt_undef.c
+++ b/src/compiler/nir/nir_opt_undef.c
@@ -71,20 +71,6 @@ opt_undef_alu(nir_alu_instr *instr)
return false;
}
-static bool
-opt_undef_block(nir_block *block, void *data)
-{
- bool *progress = data;
-
- nir_foreach_instr_safe(block, instr) {
- if (instr->type == nir_instr_type_alu)
- if (opt_undef_alu(nir_instr_as_alu(instr)))
- (*progress) = true;
- }
-
- return true;
-}
-
bool
nir_opt_undef(nir_shader *shader)
{
@@ -92,7 +78,14 @@ nir_opt_undef(nir_shader *shader)
nir_foreach_function(shader, function) {
if (function->impl) {
- nir_foreach_block_call(function->impl, opt_undef_block, &progress);
+ nir_foreach_block(block, function->impl) {
+ nir_foreach_instr_safe(block, instr) {
+ if (instr->type == nir_instr_type_alu)
+ if (opt_undef_alu(nir_instr_as_alu(instr)))
+ progress = true;
+ }
+ }
+
if (progress)
nir_metadata_preserve(function->impl,
nir_metadata_block_index |