nir: Make nir_ssa_undef_instr_create initialize the destination
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 16 Dec 2014 01:44:37 +0000 (17:44 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 15 Jan 2015 15:20:22 +0000 (07:20 -0800)
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
src/glsl/nir/nir.c
src/glsl/nir/nir.h
src/glsl/nir/nir_lower_variables.c
src/glsl/nir/nir_to_ssa.c

index 94840e2edccf9df91891c23ec05509f830a069b5..a7bf82bd9b8b4e1eb72042007637e8cc949a66f6 100644 (file)
@@ -483,13 +483,12 @@ nir_parallel_copy_instr_create(void *mem_ctx)
 }
 
 nir_ssa_undef_instr *
-nir_ssa_undef_instr_create(void *mem_ctx)
+nir_ssa_undef_instr_create(void *mem_ctx, unsigned num_components)
 {
    nir_ssa_undef_instr *instr = ralloc(mem_ctx, nir_ssa_undef_instr);
    instr_init(&instr->instr, nir_instr_type_ssa_undef);
 
-   instr->def.name = NULL;
-   instr->def.parent_instr = &instr->instr;
+   nir_ssa_def_init(&instr->instr, &instr->def, num_components, NULL);
 
    return instr;
 }
index 301e58fcc3d54c323cecea882dfd8b9808e14c78..b33d9c84909c9ddb85fcb58430ba0428c28ba5f2 100644 (file)
@@ -1294,7 +1294,8 @@ nir_phi_instr *nir_phi_instr_create(void *mem_ctx);
 
 nir_parallel_copy_instr *nir_parallel_copy_instr_create(void *mem_ctx);
 
-nir_ssa_undef_instr *nir_ssa_undef_instr_create(void *mem_ctx);
+nir_ssa_undef_instr *nir_ssa_undef_instr_create(void *mem_ctx,
+                                                unsigned num_components);
 
 nir_deref_var *nir_deref_var_create(void *mem_ctx, nir_variable *var);
 nir_deref_array *nir_deref_array_create(void *mem_ctx);
index 95ced8254b457e5715b8e3a9c81d842b98353342..e3d5cde321d6dd4dfe07cd16e3674e768d948d31 100644 (file)
@@ -688,9 +688,9 @@ get_ssa_def_for_block(struct deref_node *node, nir_block *block,
    /* If we got here then we don't have a definition that dominates the
     * given block.  This means that we need to add an undef and use that.
     */
-   nir_ssa_undef_instr *undef = nir_ssa_undef_instr_create(state->mem_ctx);
-   nir_ssa_def_init(&undef->instr, &undef->def,
-                    glsl_get_vector_elements(node->type), NULL);
+   nir_ssa_undef_instr *undef =
+      nir_ssa_undef_instr_create(state->mem_ctx,
+                                 glsl_get_vector_elements(node->type));
    nir_instr_insert_before_cf_list(&state->impl->body, &undef->instr);
    def_stack_push(node, &undef->def, state);
    return &undef->def;
@@ -758,9 +758,8 @@ rename_variables_block(nir_block *block, struct lower_variables_state *state)
                 * should result in an undefined value.
                 */
                nir_ssa_undef_instr *undef =
-                  nir_ssa_undef_instr_create(state->mem_ctx);
-               nir_ssa_def_init(&undef->instr, &undef->def,
-                                intrin->num_components, NULL);
+                  nir_ssa_undef_instr_create(state->mem_ctx,
+                                             intrin->num_components);
 
                nir_instr_insert_before(&intrin->instr, &undef->instr);
                nir_instr_remove(&intrin->instr);
index 3725ddbe226b7d411f9129c046f99b315cbdd9c2..58e8829e1c4d7e50849d902c50c601d5c1927f28 100644 (file)
@@ -159,9 +159,8 @@ static nir_ssa_def *get_ssa_src(nir_register *reg, rewrite_state *state)
        * We're using an undefined register, create a new undefined SSA value
        * to preserve the information that this source is undefined
        */
-      nir_ssa_undef_instr *instr = nir_ssa_undef_instr_create(state->mem_ctx);
-      nir_ssa_def_init(&instr->instr, &instr->def,
-                       reg->num_components, NULL);
+      nir_ssa_undef_instr *instr =
+         nir_ssa_undef_instr_create(state->mem_ctx, reg->num_components);
 
       /*
        * We could just insert the undefined instruction before the instruction