aco: stop scheduling if clause-forming fails
authorDaniel Schürmann <daniel@schuermann.dev>
Tue, 18 May 2021 20:33:30 +0000 (22:33 +0200)
committerMarge Bot <eric+marge@anholt.net>
Mon, 27 Sep 2021 14:29:16 +0000 (14:29 +0000)
commit903999c11964e3b871c5da3e7ec81902144739c6
tree85bbb6f8f303740fbf8a8eb3249dd3a6833e469c
parentecc6d78b0541d66765d434dd4158066d6c664f8e
aco: stop scheduling if clause-forming fails

This avoids unintended reordering of VMEM instructions.
It is also highly unlikely that we find more independent
instructions before previous clause-related instructions.

Totals from 1921 (1.28% of 150170) affected shaders: (GFX10.3)
VGPRs: 103832 -> 103736 (-0.09%); split: -0.10%, +0.01%
CodeSize: 8695560 -> 8706000 (+0.12%); split: -0.03%, +0.15%
Instrs: 1643752 -> 1646349 (+0.16%); split: -0.04%, +0.20%
Latency: 26755527 -> 26614645 (-0.53%); split: -0.67%, +0.14%
InvThroughput: 7226604 -> 7204809 (-0.30%); split: -0.39%, +0.08%
VClause: 46536 -> 46201 (-0.72%); split: -0.81%, +0.09%
SClause: 47910 -> 47769 (-0.29%); split: -0.43%, +0.14%
Copies: 94647 -> 94558 (-0.09%); split: -0.26%, +0.17%
Branches: 36843 -> 36847 (+0.01%); split: -0.00%, +0.01%

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10896>
src/amd/compiler/aco_scheduler.cpp