lima/ppir: remove orphan load node after cloning
authorErico Nunes <nunes.erico@gmail.com>
Sun, 12 Jan 2020 13:30:26 +0000 (14:30 +0100)
committerMarge Bot <eric+marge@anholt.net>
Wed, 15 Jan 2020 22:55:31 +0000 (22:55 +0000)
commit7e2765fded33ed13693939b0e4ef94943fedf2cb
tree4d36e3a7d67fa2f5ff0662254e8a7c1ccda4cf61
parenta3a73d116c1425d1d2da2f3b3aabe06a53c3d800
lima/ppir: remove orphan load node after cloning

There are some cases in shades using control flow where the varying load
is cloned to every block, and then the original node is left orphan.
This is not harmful for program execution, but it complicates analysis
for register allocation as there is now a case of writing to a register
that is never read.
While ppir doesn't have a dead code elimination pass for its own
optimizations and it is not hard to detect when we cloned the last load,
let's remove it early.

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/3358>
src/gallium/drivers/lima/ir/pp/nir.c
src/gallium/drivers/lima/ir/pp/node.c
src/gallium/drivers/lima/ir/pp/ppir.h