nir/regs_to_ssa: Handle regs in phi sources properly
authorJason Ekstrand <jason@jlekstrand.net>
Fri, 12 Jul 2019 16:01:40 +0000 (11:01 -0500)
committerJason Ekstrand <jason@jlekstrand.net>
Tue, 16 Jul 2019 23:28:03 +0000 (23:28 +0000)
commit6fb685fe4b762c8030f86895707516e2481e9ece
tree2060dc523c883d2740c14ae647e34e67f67f4701
parent6394680f6b54595d1f2dfac7159d2772090b234e
nir/regs_to_ssa: Handle regs in phi sources properly

Sources of phi instructions act as if they occur at the very end of the
predecessor block not the block in which the phi lives.  In order to
handle them correctly, we have to skip phi sources on the normal
instruction walk and handle them as a separate walk over the successor
phis.  While registers in phi instructions is a bit of an oddity it can
happen when we temporarily go out-of-SSA for control-flow manipulations.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111075
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
src/compiler/nir/nir_lower_regs_to_ssa.c