nir: Add a concept of per-member structs and a lowering pass
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 21 Mar 2018 23:48:35 +0000 (16:48 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Sat, 23 Jun 2018 03:15:57 +0000 (20:15 -0700)
commit39bf61aa37b0336aa27d8e3d2bf64587f07ff477
tree71862af4a722fd8a2ef95aa5de09820fc0e7e411
parenteb40540b8aa30279b80fa3a879e20bbb5d16838f
nir: Add a concept of per-member structs and a lowering pass

This adds a concept of "members" to a variable with an interface type.
It allows you to specify the full variable data for each member of the
interface instead of once for the variable.  We also add a lowering pass
to lower those variables to a sequence of variables and rewrite all the
derefs accordingly.

Acked-by: Rob Clark <robdclark@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Acked-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/compiler/Makefile.sources
src/compiler/nir/meson.build
src/compiler/nir/nir.h
src/compiler/nir/nir_clone.c
src/compiler/nir/nir_serialize.c
src/compiler/nir/nir_split_per_member_structs.c [new file with mode: 0644]
src/compiler/nir/nir_validate.c