aco/ra: refactor collect_vars() to return a sorted vector
authorDaniel Schürmann <daniel@schuermann.dev>
Fri, 18 Jun 2021 15:51:15 +0000 (17:51 +0200)
committerMarge Bot <emma+marge@anholt.net>
Mon, 14 Mar 2022 08:32:10 +0000 (08:32 +0000)
commit70aea6b41aeea6e9ff3341b07d27c5e4ede9ae02
tree91f4cb9d5424efd4bc2cb12b837089c8c58b6d97
parent61c36b6dc0a275057df160a20e709acbae9c0450
aco/ra: refactor collect_vars() to return a sorted vector

The vector of IDs is sorted with decreasing sizes,
and by increasing assigned registers.
This decouples register assingment from ssa IDs.

Totals from 12694 (9.41% of 134913) affected shaders: (GFX10.3)
VGPRs: 757864 -> 757848 (-0.00%); split: -0.00%, +0.00%
CodeSize: 72350540 -> 72348688 (-0.00%); split: -0.02%, +0.02%
MaxWaves: 237018 -> 237020 (+0.00%); split: +0.00%, -0.00%
Instrs: 13545494 -> 13544699 (-0.01%); split: -0.03%, +0.02%
Latency: 148539203 -> 148533292 (-0.00%); split: -0.01%, +0.00%
InvThroughput: 30319086 -> 30320382 (+0.00%); split: -0.01%, +0.01%
VClause: 326875 -> 327028 (+0.05%); split: -0.05%, +0.09%
SClause: 479833 -> 479837 (+0.00%); split: -0.00%, +0.00%
Copies: 862152 -> 860914 (-0.14%); split: -0.43%, +0.28%
Branches: 317775 -> 317777 (+0.00%)

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