intel/nir: Split IO arrays into elements
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 26 Jul 2018 05:52:39 +0000 (22:52 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 2 Aug 2018 01:02:28 +0000 (18:02 -0700)
commitb0bb547f782301199e75dc107ac335faf4eb990c
tree6e0795924af3755e7275da9f3fc15fcb8e1983d6
parent57804efa885074866e1388191b5f48680c6151da
intel/nir: Split IO arrays into elements

The NIR nir_lower_io_arrays_to_elements pass attempts to split I/O
variables which are arrays or matrices into a sequence of separate
variables.  This can help link-time optimization by allowing us to
remove varyings at a more granular level.

Shader-db results on Kaby Lake:

    total instructions in shared programs: 15177645 -> 15168494 (-0.06%)
    instructions in affected programs: 79857 -> 70706 (-11.46%)
    helped: 392
    HURT: 0

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/intel/compiler/brw_nir.c