[Mesa-dev] [PATCH v2 03/14] nir: cleanup cf nodes earlier in nir_cf_node_remove()

Jason Ekstrand jason at jlekstrand.net
Fri May 22 11:15:59 PDT 2015


Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>

On Thu, May 21, 2015 at 9:40 AM, Connor Abbott <cwabbott0 at gmail.com> wrote:
> Before, when we were deleting a cf node that was a block, we were first
> removing all the instructions and then calling cleanup_cf_node(), at
> which point cleanup_cf_node() couldn't do its job. Just move it before
> everything else, which should be ok for the non-block case too.
>
> v2: split out from previous commit
> Signed-off-by: Connor Abbott <cwabbott0 at gmail.com>
> ---
>  src/glsl/nir/nir.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/glsl/nir/nir.c b/src/glsl/nir/nir.c
> index 704553f..a2b5e7c 100644
> --- a/src/glsl/nir/nir.c
> +++ b/src/glsl/nir/nir.c
> @@ -1253,6 +1253,8 @@ nir_cf_node_remove(nir_cf_node *node)
>     nir_function_impl *impl = nir_cf_node_get_function(node);
>     nir_metadata_preserve(impl, nir_metadata_none);
>
> +   cleanup_cf_node(node, impl);
> +
>     if (node->type == nir_cf_node_block) {
>        /*
>         * Basic blocks can't really be removed by themselves, since they act as
> @@ -1274,8 +1276,6 @@ nir_cf_node_remove(nir_cf_node *node)
>        exec_node_remove(&node->node);
>        stitch_blocks(before_block, after_block);
>     }
> -
> -   cleanup_cf_node(node);
>  }
>
>  static bool
> --
> 2.1.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