nir/lower_atomics: Use/support SSA
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 16 Dec 2014 00:23:21 +0000 (16:23 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 15 Jan 2015 15:20:22 +0000 (07:20 -0800)
commit821e75a16038aba23aa0d46c081c99f07ee44ecd
tree6978ab7bac96d80bfa5dff9caa6e9dcc140fcc49
parent8ddb03d56dc5e0b4f282b6f2bdcdb4a6acf89e95
nir/lower_atomics: Use/support SSA

Previously, lower_atomics was non-SSA only.  We assert-failed if the
destination of an atomic operation intrinsic was an SSA def and we used
temporary registers for computing offsets.  This commit changes both of
these behaviors.  We now use SSA values for computing offsets (so we can
optimize them) and we handle SSA destinations.  We also move the pass to
run before we go out of SSA on i965 as it now generates SSA values.

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
src/glsl/nir/nir_lower_atomics.c
src/mesa/drivers/dri/i965/brw_fs_nir.cpp