nir/spirv: Wrap access chains in a new vtn_pointer data structure
authorJason Ekstrand <jason@jlekstrand.net>
Thu, 29 Jun 2017 17:33:28 +0000 (10:33 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Wed, 5 Jul 2017 22:26:52 +0000 (15:26 -0700)
commit415e198d4815db2eb6f55e5fc817357fcf8532a4
treeba14fa2ab0d9c2a727095b1bbb4fbdfcd632f40b
parent06b5eeda1718c1b1051e8f388d71ca49c056e179
nir/spirv: Wrap access chains in a new vtn_pointer data structure

The vtn_pointer structure provides a bit better abstraction than passing
access chains around directly.  For one thing, if the pointer just
points to a variable, we don't need the access chain at all.  Also,
pointers know what their dereferenced type is so we can avoid passing
the type in a bunch of places.  Finally, pointers can, in theory, be
extended to the case where you don't actually know what variable is
being referenced.

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
src/compiler/spirv/spirv_to_nir.c
src/compiler/spirv/vtn_cfg.c
src/compiler/spirv/vtn_private.h
src/compiler/spirv/vtn_variables.c