[Mesa-dev] [PATCH v2 07/11] intel/nir: Use the new structure and array splitting passes

Jason Ekstrand jason at jlekstrand.net
Wed Aug 22 16:11:46 UTC 2018


On Mon, Aug 20, 2018 at 7:57 PM Caio Marcelo de Oliveira Filho <
caio.oliveira at intel.com> wrote:

> On Sat, Jul 28, 2018 at 10:44:38PM -0700, Jason Ekstrand wrote:
> > Shader-db results on Kaby Lake:
> >
> >     total instructions in shared programs: 15177605 -> 15177605 (0.00%)
> >     instructions in affected programs: 0 -> 0
> >     helped: 0
> >     HURT: 0
> >
> > This is unsurprising because nir_lower_vars_to_ssa already effectively
> > does structure and array splitting internally.  It doesn't actually
> > split the variables but it's ability to reason about aliasing in the
> > presence of arrays and structures and pick out scalars or vectors to be
> > lowered to SSA values is fairly advanced.
> > ---
> >  src/intel/compiler/brw_nir.c | 2 ++
> >  1 file changed, 2 insertions(+)
>
> This patch is
>
> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
>
>
> > diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c
> > index 5990427b731..96ad77c3906 100644
> > --- a/src/intel/compiler/brw_nir.c
> > +++ b/src/intel/compiler/brw_nir.c
> > @@ -541,6 +541,7 @@ brw_nir_optimize(nir_shader *nir, const struct
> brw_compiler *compiler,
> >     bool progress;
> >     do {
> >        progress = false;
> > +      OPT(nir_split_array_vars, nir_var_local);
> >        OPT(nir_lower_vars_to_ssa);
> >        OPT(nir_opt_copy_prop_vars);
>
> I'm guessing we do this multiple times (instead of only once like
> struct) because other optimizations might turn indirects into directs,
> allowing more splitting.  If that's the case maybe worth a note in the
> commit message.
>

I thought that was obvious, but sure I can put it in the commit message.
No harm there.

--Jason
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180822/8f68f1c6/attachment.html>


More information about the mesa-dev mailing list