And from nir_lower_regs_to_ssa_impl() as well.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
bool nir_is_per_vertex_io(nir_variable *var, gl_shader_stage stage);
void nir_lower_io_types(nir_shader *shader);
-void nir_lower_regs_to_ssa_impl(nir_function_impl *impl);
-void nir_lower_regs_to_ssa(nir_shader *shader);
+bool nir_lower_regs_to_ssa_impl(nir_function_impl *impl);
+bool nir_lower_regs_to_ssa(nir_shader *shader);
bool nir_lower_vars_to_ssa(nir_shader *shader);
bool nir_remove_dead_variables(nir_shader *shader, nir_variable_mode modes);
&vec->dest.dest.ssa);
}
-void
+bool
nir_lower_regs_to_ssa_impl(nir_function_impl *impl)
{
if (exec_list_is_empty(&impl->registers))
- return;
+ return false;
nir_metadata_require(impl, nir_metadata_block_index |
nir_metadata_dominance);
nir_metadata_preserve(impl, nir_metadata_block_index |
nir_metadata_dominance);
+ return true;
}
-void
+bool
nir_lower_regs_to_ssa(nir_shader *shader)
{
assert(exec_list_is_empty(&shader->registers));
+ bool progress = false;
nir_foreach_function(function, shader) {
if (function->impl)
- nir_lower_regs_to_ssa_impl(function->impl);
+ progress |= nir_lower_regs_to_ssa_impl(function->impl);
}
+
+ return progress;
}