lima/ppir: clone ld_{uni,tex,var} into each block
authorVasily Khoruzhick <anarsoul@gmail.com>
Tue, 20 Aug 2019 03:20:12 +0000 (20:20 -0700)
committerVasily Khoruzhick <anarsoul@gmail.com>
Sat, 24 Aug 2019 01:19:46 +0000 (18:19 -0700)
commite15af23b73eb5a5c91c559fb4972637a06b9b924
tree3ef181e4ffe631f93b45b38ceaede9e96b6b4ef7
parent172f2ad805002c9f2de727fa782095be3e8aeafe
lima/ppir: clone ld_{uni,tex,var} into each block

ppir_lower_load() and ppir_lower_load_texture() assume that node
is in the same block as its successors, fix it by cloning each
ld_uni and ld_tex to every block.

It also reduces register pressure since values never cross block
boundaries and thus never appear in live_in or live_out of any block,
so do it for varyings as well.

Tested-by: Andreas Baierl <ichgeh@imkreisrum.de>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
src/gallium/drivers/lima/ir/pp/lower.c
src/gallium/drivers/lima/ir/pp/nir.c
src/gallium/drivers/lima/ir/pp/node.c
src/gallium/drivers/lima/ir/pp/ppir.h