nir/clone: Export nir_variable_clone
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 23 Mar 2016 22:05:55 +0000 (15:05 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Wed, 23 Mar 2016 22:26:11 +0000 (15:26 -0700)
Reviewed-by: Rob Clark <robclark@gmail.com>
src/compiler/nir/nir.h
src/compiler/nir/nir_clone.c

index 1e91207509ed619df8d2a083b9621b345e22947c..02acbfc9d732718374e577ad0436cf82f89ae4f8 100644 (file)
@@ -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_function_impl *nir_function_impl_clone(const nir_function_impl *fi);
 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
 void nir_validate_shader(nir_shader *shader);
index 0ef0289504ed5cb64a8267e9ff078e39be4426df..a721552f6a62a0faee8aca1ae99054fd85a2d334 100644 (file)
@@ -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
  * having to deal with locals and globals separately:
  */
-static nir_variable *
-clone_variable(clone_state *state, const nir_variable *var)
+nir_variable *
+nir_variable_clone(const nir_variable *var, nir_shader *shader)
 {
-   nir_variable *nvar = rzalloc(state->ns, nir_variable);
-   add_remap(state, nvar, var);
+   nir_variable *nvar = rzalloc(shader, nir_variable);
 
    nvar->type = var->type;
    nvar->name = ralloc_strdup(nvar, var->name);
@@ -149,6 +148,15 @@ clone_variable(clone_state *state, const nir_variable *var)
    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: */
 static void
 clone_var_list(clone_state *state, struct exec_list *dst,