lima/ppir: handle write to dead registers in ppir
authorErico Nunes <nunes.erico@gmail.com>
Mon, 20 Jan 2020 00:33:07 +0000 (01:33 +0100)
committerErico Nunes <nunes.erico@gmail.com>
Sat, 25 Jan 2020 13:48:02 +0000 (14:48 +0100)
commitd6b1917c01765b21180ebecb4ca9aa80746ef560
treea9b16667cbca84ebbe20ad17db300e67528b38e7
parenteb7cd575da02f3ae60d05112ca86ce6c2cd27e3c
lima/ppir: handle write to dead registers in ppir

nir can output writes to dead registers when expanding vec4 operations
to non-ssa registers. In that case, some components of the vec4 may be
assigned but never read. These are also not currently removed by a nir
dead code elimination pass as they are not ssa.
In order to prevent regalloc from allocating a live register for this
operation, an interference must be assigned to it during liveness
analysis.

This workaround may be removed in the future if the assignments to dead
components can be removed earlier in ppir or nir.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3502>
.gitlab-ci/deqp-lima-fails.txt
src/gallium/drivers/lima/ir/pp/liveness.c