aco: only break SMEM clauses if XNACK is enabled (mostly APUs)

Graphics / Mesa 3D Graphics Library / Mesa - Samuel Pitoiset [gmail.com] - 1 April 2020 17:50 EDT

According to LLVM, it seems only required for APUs like RAVEN, but we still ensure that SMEM stores are in their own clause.

pipeline-db (VEGA10): Totals from affected shaders: SGPRS: 1775364 -> 1775364 (0.00 %)
VGPRS: 1287176 -> 1287176 (0.00 %) Spilled SGPRs: 725 -> 725 (0.00 %) Spilled VGPRs: 0 -> 0 (0.00 %) Code Size: 65386620 -> 65107460 (-0.43 %) bytes Max Waves: 287099 -> 287099 (0.00 %)

pipeline-db (POLARIS10): Totals from affected shaders: SGPRS: 1797743 -> 1797743 (0.00 %)
VGPRS: 1271108 -> 1271108 (0.00 %) Spilled SGPRs: 730 -> 730 (0.00 %) Spilled VGPRs: 0 -> 0 (0.00 %) Code Size: 64046244 -> 63782324 (-0.41 %) bytes Max Waves: 254875 -> 254875 (0.00 %)

This only affects GFX6-GFX9 chips because the compiler uses a different pass for GFX10.

2f424c83e07 aco: only break SMEM clauses if XNACK is enabled (mostly APUs)
src/amd/compiler/aco_insert_NOPs.cpp | 77 ++++++++++++++--------
.../compiler/aco_instruction_selection_setup.cpp | 20 ++++++
src/amd/compiler/aco_ir.h | 3 +-
src/amd/compiler/aco_live_var_analysis.cpp | 6 +-
4 files changed, 75 insertions(+), 31 deletions(-)

Upstream: cgit.freedesktop.org


  • Share