From: Jason Ekstrand Date: Mon, 15 Feb 2016 05:42:34 +0000 (-0800) Subject: nir: Create function parameters in function_impl_create X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e4bebe8a0255dcd8c9910f2cf89894313286df4d;p=mesa.git nir: Create function parameters in function_impl_create Reviewed-by: Jordan Justen --- diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c index 2242317bc8d..cd78475bdb8 100644 --- a/src/compiler/nir/nir.c +++ b/src/compiler/nir/nir.c @@ -300,6 +300,26 @@ nir_function_impl_create(nir_function *function) function->impl = impl; impl->function = function; + impl->num_params = function->num_params; + impl->params = ralloc_array(function->shader, + nir_variable *, impl->num_params); + + for (unsigned i = 0; i < impl->num_params; i++) { + impl->params[i] = rzalloc(function->shader, nir_variable); + impl->params[i]->type = function->params[i].type; + impl->params[i]->data.mode = nir_var_param; + impl->params[i]->data.location = i; + } + + if (!glsl_type_is_void(function->return_type)) { + impl->return_var = rzalloc(function->shader, nir_variable); + impl->return_var->type = function->return_type; + impl->return_var->data.mode = nir_var_param; + impl->return_var->data.location = -1; + } else { + impl->return_var = NULL; + } + return impl; }