aco: Spill more optimally before loops

Graphics / Mesa 3D Graphics Library / Mesa - Timur Kristóf [gmail.com] - 11 January 2021 12:25 UTC

This further reduces the dead code emitted by the spiller. Some minimal amount of dead IR is still emitted sometimes, but that doesn't generate any compiled code at the end.

Totals from 1953 (1.40% of 139391) affected shaders:
VGPRs: 206980 -> 206588 (-0.19%) SpillSGPRs: 24719 -> 16423 (-33.56%); split: -33.58%, +0.02% CodeSize: 28448516 -> 28343836 (-0.37%); split: -0.38%, +0.01% MaxWaves: 8960 -> 8992 (+0.36%) Instrs: 5422049 -> 5408334 (-0.25%); split: -0.26%, +0.01% Cycles: 511240864 -> 512460764 (+0.24%); split: -0.02%, +0.26%
VMEM: 346681 -> 346468 (-0.06%); split: +0.27%, -0.33% SMEM: 124160 -> 122802 (-1.09%); split: +0.33%, -1.42%
VClause: 81102 -> 81163 (+0.08%); split: -0.01%, +0.09% SClause: 174404 -> 174237 (-0.10%); split: -0.23%, +0.13% Copies: 530216 -> 532961 (+0.52%); split: -0.90%, +1.42% Branches: 189114 -> 189221 (+0.06%); split: -0.13%, +0.18% PreSGPRs: 206017 -> 206526 (+0.25%); split: -0.08%, +0.33% PreVGPRs: 183103 -> 182964 (-0.08%)

b75d8052a77 aco: Spill more optimally before loops.
src/amd/compiler/aco_spill.cpp | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

Upstream: cgit.freedesktop.org


  • Share