nir: Add a pass to lower vector phi nodes to scalar phi nodes
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 21 Jan 2015 23:23:32 +0000 (15:23 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 3 Feb 2015 20:33:11 +0000 (12:33 -0800)
commitf2adcd36cb4f95d13bd820c3ba51451a9bf1df4f
treebb162d1ca2b8a98fe7ef14a7b34026e282452f28
parente87928a494a7cf0985a9d1cd78bda8729d17c614
nir: Add a pass to lower vector phi nodes to scalar phi nodes

v2 Jason Ekstrand <jason.ekstrand@intel.com>:
 - Add better comments
 - Use nir_ssa_dest_init and nir_src_for_ssa more places
 - Fix some void * casts

v3 Jason Ekstrand <jason.ekstrand@intel.com>:
 - Rework the way we determine whether or not to sccalarize a phi node to
   make the recursion non-bogus
 - Treat load_const instructions as scalarizable

v4 Jason Ekstrand <jason.ekstrand@intel.com>:
 - Allow uniform and input loads to be scalarizable

v5 Jason Ekstrand <jason.ekstrand@intel.com>:
 - Also consider loads of inputs (varying, uniform, or ubo) to be
   scalarizable.  We were already doing this for load_var on uniforms and
   inputs.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/glsl/Makefile.sources
src/glsl/nir/nir.h
src/glsl/nir/nir_lower_phis_to_scalar.c [new file with mode: 0644]