aco: remove superflous (bool & exec) if the result comes from VOPC
authorDaniel Schürmann <daniel@schuermann.dev>
Fri, 19 Jun 2020 15:09:48 +0000 (16:09 +0100)
committerDaniel Schürmann <daniel@schuermann.dev>
Tue, 7 Jul 2020 15:35:01 +0000 (17:35 +0200)
commit10020b8d17589126ef5f54e88fc49f0f6880fcbe
tree82a13ed04fa361596aa8214cd0f4d328d4427c00
parente4654a35b00315465ad84afcf92162ddf15eec40
aco: remove superflous (bool & exec) if the result comes from VOPC

This works in cases where the VOPC instruction was executed with
the same exec mask.

Totals from affected shaders: (VEGA)
SGPRS: 1342204 -> 1342164 (-0.00 %)
VGPRS: 877220 -> 877220 (0.00 %)
Spilled SGPRs: 157800 -> 157800 (0.00 %)
Spilled VGPRs: 0 -> 0 (0.00 %)
Private memory VGPRs: 0 -> 0 (0.00 %)
Scratch size: 0 -> 0 (0.00 %) dwords per thread
Code Size: 118083212 -> 118021748 (-0.05 %) bytes
LDS: 26 -> 26 (0.00 %) blocks
Max Waves: 144024 -> 144024 (0.00 %)

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5563>
src/amd/compiler/aco_optimizer.cpp