compiler/nir: Add support for variable initialization from a pointer

Add a pointer_initializer field to nir_variable analogous to
constant_initializer, which can be used to initialize the nir_variable
to a pointer to another nir_variable. Just like the
constant_initializer, the pointer_initializer gets eliminated in the
nir_lower_constant_initializers pass.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3047>
This commit is contained in:
Arcady Goldmints-Orlov
2019-12-10 15:37:53 -05:00
committed by Caio Marcelo de Oliveira Filho
parent 461c40e0fd
commit 7acc81056f
8 changed files with 41 additions and 11 deletions

View File

@@ -558,6 +558,8 @@ print_var_decl(nir_variable *var, print_state *state)
print_constant(var->constant_initializer, var->type, state);
fprintf(fp, " }");
}
if (var->pointer_initializer)
fprintf(fp, " = &%s", get_var_name(var->pointer_initializer, state));
fprintf(fp, "\n");
print_annotation(state, var);