nir/dead_write_vars: Get modes directly from derefs
Instead of going all the way back to the variable, just look at the deref. The modes are guaranteed to be the same by nir_validate whenever the variable can be found. This fixes clear_unused_for_modes for derefs that don't have an accessible variable. Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
@@ -56,8 +56,7 @@ static void
|
||||
clear_unused_for_modes(struct util_dynarray *unused_writes, nir_variable_mode modes)
|
||||
{
|
||||
util_dynarray_foreach_reverse(unused_writes, struct write_entry, entry) {
|
||||
nir_variable *var = nir_deref_instr_get_variable(entry->dst);
|
||||
if (var->data.mode & modes)
|
||||
if (entry->dst->mode & modes)
|
||||
*entry = util_dynarray_pop(unused_writes, struct write_entry);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user