mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 21:50:12 +01:00
nir: Report progress from nir_remove_dead_variables().
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
parent
9f5e7ae9d8
commit
1adde5b87e
2 changed files with 12 additions and 5 deletions
|
|
@ -1823,7 +1823,7 @@ void nir_lower_io(nir_shader *shader,
|
|||
int (*type_size)(const struct glsl_type *));
|
||||
void nir_lower_vars_to_ssa(nir_shader *shader);
|
||||
|
||||
void nir_remove_dead_variables(nir_shader *shader);
|
||||
bool nir_remove_dead_variables(nir_shader *shader);
|
||||
|
||||
void nir_move_vec_src_uses_to_dest(nir_shader *shader);
|
||||
bool nir_lower_vec_to_movs(nir_shader *shader);
|
||||
|
|
|
|||
|
|
@ -97,32 +97,39 @@ add_var_use_shader(nir_shader *shader, struct set *live)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
static bool
|
||||
remove_dead_vars(struct exec_list *var_list, struct set *live)
|
||||
{
|
||||
bool progress = false;
|
||||
|
||||
foreach_list_typed_safe(nir_variable, var, node, var_list) {
|
||||
struct set_entry *entry = _mesa_set_search(live, var);
|
||||
if (entry == NULL) {
|
||||
exec_node_remove(&var->node);
|
||||
ralloc_free(var);
|
||||
progress = true;
|
||||
}
|
||||
}
|
||||
|
||||
return progress;
|
||||
}
|
||||
|
||||
void
|
||||
bool
|
||||
nir_remove_dead_variables(nir_shader *shader)
|
||||
{
|
||||
bool progress = false;
|
||||
struct set *live =
|
||||
_mesa_set_create(NULL, _mesa_hash_pointer, _mesa_key_pointer_equal);
|
||||
|
||||
add_var_use_shader(shader, live);
|
||||
|
||||
remove_dead_vars(&shader->globals, live);
|
||||
progress = remove_dead_vars(&shader->globals, live) || progress;
|
||||
|
||||
nir_foreach_overload(shader, overload) {
|
||||
if (overload->impl)
|
||||
remove_dead_vars(&overload->impl->locals, live);
|
||||
progress = remove_dead_vars(&overload->impl->locals, live) || progress;
|
||||
}
|
||||
|
||||
_mesa_set_destroy(live, NULL);
|
||||
return progress;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue