intel/fs: Fix NULL destinations on 3-source instructions again after late DCE
authorIan Romanick <ian.d.romanick@intel.com>
Wed, 11 Mar 2020 22:53:23 +0000 (15:53 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Thu, 12 Mar 2020 15:22:43 +0000 (08:22 -0700)
commitba88e951871ae1df5ba567c8f4071dddbe50e286
tree7001589f28214b239bdc3a803335b89ce61e7f99
parentcfa299eadb21893348c60906dfde8feb175c7f14
intel/fs: Fix NULL destinations on 3-source instructions again after late DCE

We considered moving this down near the call to
insert_gen4_send_dependency_workarounds.  By that point it's too late
for a couple reasons.  One, we're potentially increasing resiter
pressure that may lead to anoter spill.  Two, fixup_3src_null_dest tries
to allocate a VGRF, but the post-register allocation shader uses
physical registers.

Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2621
Fixes: ba2fa1ceaf4 ("intel/fs: Do cmod prop again after scheduling")
Reviewed-by: Matt Turner <mattst88@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4155>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4155>
src/intel/compiler/brw_fs.cpp