mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 19:30:11 +01:00
nir: Handle incomplete derefs in split_struct_vars
In split_var_list_structs where we initalize the splitting, we already
use get_complex_used_vars to avoid splitting any variables that have a
complex use. However, we weren't actually handling the complex uses
properly in the case where we can't actually find the variable.
Fixes: f1cb3348f1 "nir/split_vars: Properly bail in the presence of ..."
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6332>
This commit is contained in:
parent
6b72004f12
commit
5664713d7b
1 changed files with 8 additions and 0 deletions
|
|
@ -232,6 +232,14 @@ split_struct_derefs_impl(nir_function_impl *impl,
|
|||
continue;
|
||||
|
||||
nir_variable *base_var = nir_deref_instr_get_variable(deref);
|
||||
/* If we can't chase back to the variable, then we're a complex use.
|
||||
* This should have been detected by get_complex_used_vars() and the
|
||||
* variable should not have been split. However, we have no way of
|
||||
* knowing that here, so we just have to trust it.
|
||||
*/
|
||||
if (base_var == NULL)
|
||||
continue;
|
||||
|
||||
struct hash_entry *entry =
|
||||
_mesa_hash_table_search(var_field_map, base_var);
|
||||
if (!entry)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue