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