r300: run dataflow optimizations in separate loops
authorPavel Ondračka <pavel.ondracka@gmail.com>
Fri, 17 Jun 2022 19:09:32 +0000 (21:09 +0200)
committerPavel Ondračka <pavel.ondracka@gmail.com>
Sun, 21 Aug 2022 07:51:10 +0000 (09:51 +0200)
commit05785d482ea86493a700ad778264f563787ceb20
tree8467f27da69ab1041cf93e80db7aa11165843a97
parent2755faf9386b4428973f105dfada6625ab85f392
r300: run dataflow optimizations in separate loops

Constant folding first, than copy propagate simple movs, after that
we run the merge movs pass and finally peephole. The important part
is to do the copy propagate for the whole program before running merge
movs.

We no longer check the return from merge_movs so convert it to void.

Shader-db changes with RV530:
total instructions in shared programs: 155361 -> 154787 (-0.37%)
instructions in affected programs: 67920 -> 67346 (-0.85%)
total temps in shared programs: 20836 -> 20773 (-0.30%)
temps in affected programs: 711 -> 648 (-8.86%)
total presub in shared programs: 8226 -> 8202 (-0.29%)
presub in affected programs: 223 -> 199 (-10.76%)
total temps in shared programs: 20836 -> 20773 (-0.30%)
temps in affected programs: 711 -> 648 (-8.86%)

Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Filip Gawin <filip@gawin.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17560>
src/gallium/drivers/r300/compiler/radeon_optimize.c