nir: Add a structure splitting pass

This pass doesn't really do much now because nir_lower_vars_to_ssa can
already see through structures and considers them to be "split".  This
pass exists to help other passes more easily see through structure
variables.  If a back-end does implement arrays using scratch or
indirects on registers, having more smaller arrays is likely to have
better memory efficiency.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
This commit is contained in:
Jason Ekstrand
2018-07-24 10:08:06 -07:00
parent b489998e63
commit 26eb077ec4
4 changed files with 278 additions and 0 deletions

View File

@@ -184,6 +184,7 @@ files_libnir = files(
'nir_serialize.h',
'nir_split_per_member_structs.c',
'nir_split_var_copies.c',
'nir_split_vars.c',
'nir_sweep.c',
'nir_to_lcssa.c',
'nir_validate.c',