mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 06:30:10 +01:00
nir: Combine remove_dead_local_vars() and remove_dead_global_vars().
We can just pass a pointer to the list of variables, and reuse the code. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
parent
33f0f68d59
commit
f4e4491080
1 changed files with 4 additions and 14 deletions
|
|
@ -98,19 +98,9 @@ add_var_use_shader(nir_shader *shader, struct set *live)
|
|||
}
|
||||
|
||||
static void
|
||||
remove_dead_local_vars(nir_function_impl *impl, struct set *live)
|
||||
remove_dead_vars(struct exec_list *var_list, struct set *live)
|
||||
{
|
||||
foreach_list_typed_safe(nir_variable, var, node, &impl->locals) {
|
||||
struct set_entry *entry = _mesa_set_search(live, var);
|
||||
if (entry == NULL)
|
||||
exec_node_remove(&var->node);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
remove_dead_global_vars(nir_shader *shader, struct set *live)
|
||||
{
|
||||
foreach_list_typed_safe(nir_variable, var, node, &shader->globals) {
|
||||
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);
|
||||
|
|
@ -125,11 +115,11 @@ nir_remove_dead_variables(nir_shader *shader)
|
|||
|
||||
add_var_use_shader(shader, live);
|
||||
|
||||
remove_dead_global_vars(shader, live);
|
||||
remove_dead_vars(&shader->globals, live);
|
||||
|
||||
nir_foreach_overload(shader, overload) {
|
||||
if (overload->impl)
|
||||
remove_dead_local_vars(overload->impl, live);
|
||||
remove_dead_vars(&overload->impl->locals, live);
|
||||
}
|
||||
|
||||
_mesa_set_destroy(live, NULL);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue