nir/clone: Export nir_variable_clone
Reviewed-by: Rob Clark <robclark@gmail.com>
This commit is contained in:
@@ -2052,6 +2052,7 @@ void nir_print_instr(const nir_instr *instr, FILE *fp);
|
|||||||
nir_shader *nir_shader_clone(void *mem_ctx, const nir_shader *s);
|
nir_shader *nir_shader_clone(void *mem_ctx, const nir_shader *s);
|
||||||
nir_function_impl *nir_function_impl_clone(const nir_function_impl *fi);
|
nir_function_impl *nir_function_impl_clone(const nir_function_impl *fi);
|
||||||
nir_constant *nir_constant_clone(const nir_constant *c, nir_variable *var);
|
nir_constant *nir_constant_clone(const nir_constant *c, nir_variable *var);
|
||||||
|
nir_variable *nir_variable_clone(const nir_variable *c, nir_shader *shader);
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
void nir_validate_shader(nir_shader *shader);
|
void nir_validate_shader(nir_shader *shader);
|
||||||
|
@@ -127,11 +127,10 @@ nir_constant_clone(const nir_constant *c, nir_variable *nvar)
|
|||||||
/* NOTE: for cloning nir_variable's, bypass nir_variable_create to avoid
|
/* NOTE: for cloning nir_variable's, bypass nir_variable_create to avoid
|
||||||
* having to deal with locals and globals separately:
|
* having to deal with locals and globals separately:
|
||||||
*/
|
*/
|
||||||
static nir_variable *
|
nir_variable *
|
||||||
clone_variable(clone_state *state, const nir_variable *var)
|
nir_variable_clone(const nir_variable *var, nir_shader *shader)
|
||||||
{
|
{
|
||||||
nir_variable *nvar = rzalloc(state->ns, nir_variable);
|
nir_variable *nvar = rzalloc(shader, nir_variable);
|
||||||
add_remap(state, nvar, var);
|
|
||||||
|
|
||||||
nvar->type = var->type;
|
nvar->type = var->type;
|
||||||
nvar->name = ralloc_strdup(nvar, var->name);
|
nvar->name = ralloc_strdup(nvar, var->name);
|
||||||
@@ -149,6 +148,15 @@ clone_variable(clone_state *state, const nir_variable *var)
|
|||||||
return nvar;
|
return nvar;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static nir_variable *
|
||||||
|
clone_variable(clone_state *state, const nir_variable *var)
|
||||||
|
{
|
||||||
|
nir_variable *nvar = nir_variable_clone(var, state->ns);
|
||||||
|
add_remap(state, nvar, var);
|
||||||
|
|
||||||
|
return nvar;
|
||||||
|
}
|
||||||
|
|
||||||
/* clone list of nir_variable: */
|
/* clone list of nir_variable: */
|
||||||
static void
|
static void
|
||||||
clone_var_list(clone_state *state, struct exec_list *dst,
|
clone_var_list(clone_state *state, struct exec_list *dst,
|
||||||
|
Reference in New Issue
Block a user