nir/lower_io: Make get_io_offset() return a nir_ssa_def * for indirects.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 1 Oct 2015 07:36:25 +0000 (00:36 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Sun, 4 Oct 2015 21:00:01 +0000 (14:00 -0700)
commitf2a4b40cf15cbc5eaab1776ad275ed8eead3322f
tree9dd856246394027521e93a88003fbe5be9ea50c7
parent6994ca20aad110734f87ef5297fecd53e8f6e34e
nir/lower_io: Make get_io_offset() return a nir_ssa_def * for indirects.

get_io_offset() already walks the dereference chain and discovers
whether or not we have an indirect; we can just return that rather than
computing it a second time via deref_has_indirect().  This means moving
the call a bit earlier.

By returning a nir_ssa_def *, we can pass back both an existence flag
(via NULL checking the pointer) and the value in one parameter.  It
also simplifies the code somewhat.  nir_lower_samplers works in a
similar fashion.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
src/glsl/nir/nir_lower_io.c