On Sun, Nov 18, 2018 at 9:57 PM Dave Airlie <airl...@gmail.com> wrote:

> From: Dave Airlie <airl...@redhat.com>
>
> Check if the base ends up with no variable, and continue
> if we see that case outside the loop.
> ---
>  src/compiler/nir/nir_lower_indirect_derefs.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/src/compiler/nir/nir_lower_indirect_derefs.c
> b/src/compiler/nir/nir_lower_indirect_derefs.c
> index 897a0620872..3d6452ac847 100644
> --- a/src/compiler/nir/nir_lower_indirect_derefs.c
> +++ b/src/compiler/nir/nir_lower_indirect_derefs.c
> @@ -141,8 +141,12 @@ lower_indirect_derefs_block(nir_block *block,
> nir_builder *b,
>              has_indirect = true;
>
>           base = nir_deref_instr_parent(base);
> +         if (base == NULL)
> +            break;
>        }
>
> +      if (base == NULL)
> +         continue;
>        if (!has_indirect)
>

My version of this patch did "while (base &&" and "if (!base ||
!has_indirect)" which makes the code a bit smaller.  Doesn't matter much.
Either way,

Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net>


>           continue;
>
> --
> 2.17.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to