[Mesa-dev] [PATCH 132/133] nir: Make nir_ssa_undef_instr_create take a number of components

Connor Abbott cwabbott0 at gmail.com
Mon Jan 5 23:02:42 PST 2015


The commit message should probably say something like "nir: Make
nir_ssa_undef_instr_create initialize the destination". That we now
need to pass in the number of components is just a side effect.

On Tue, Dec 16, 2014 at 1:13 AM, Jason Ekstrand <jason at jlekstrand.net> wrote:
> ---
>  src/glsl/nir/nir.c                 |  5 ++---
>  src/glsl/nir/nir.h                 |  3 ++-
>  src/glsl/nir/nir_lower_variables.c | 11 +++++------
>  src/glsl/nir/nir_to_ssa.c          |  5 ++---
>  4 files changed, 11 insertions(+), 13 deletions(-)
>
> diff --git a/src/glsl/nir/nir.c b/src/glsl/nir/nir.c
> index e128b48..2f79892 100644
> --- a/src/glsl/nir/nir.c
> +++ b/src/glsl/nir/nir.c
> @@ -480,13 +480,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;
>  }
> diff --git a/src/glsl/nir/nir.h b/src/glsl/nir/nir.h
> index b859322..74a1dda 100644
> --- a/src/glsl/nir/nir.h
> +++ b/src/glsl/nir/nir.h
> @@ -1295,7 +1295,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);
> diff --git a/src/glsl/nir/nir_lower_variables.c b/src/glsl/nir/nir_lower_variables.c
> index 16157b3..c5bc866 100644
> --- a/src/glsl/nir/nir_lower_variables.c
> +++ b/src/glsl/nir/nir_lower_variables.c
> @@ -692,9 +692,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;
> @@ -764,9 +764,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);
> diff --git a/src/glsl/nir/nir_to_ssa.c b/src/glsl/nir/nir_to_ssa.c
> index 01297e6..b352ded 100644
> --- a/src/glsl/nir/nir_to_ssa.c
> +++ b/src/glsl/nir/nir_to_ssa.c
> @@ -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
> --
> 2.2.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list