From 79875737cce4a1d870070f1612c7555f16f8765a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Tue, 16 Apr 2024 11:34:31 +0200 Subject: [PATCH] radv: use NIR loop invariant code motion pass Totals from 3469 (4.37% of 79395) affected shaders: (GFX11) MaxWaves: 78690 -> 78622 (-0.09%); split: +0.03%, -0.11% Instrs: 11093592 -> 11092346 (-0.01%); split: -0.09%, +0.07% CodeSize: 57979444 -> 58077232 (+0.17%); split: -0.12%, +0.29% VGPRs: 257892 -> 258336 (+0.17%); split: -0.08%, +0.25% SpillSGPRs: 2958 -> 2521 (-14.77%); split: -32.83%, +18.05% Latency: 135247583 -> 134446992 (-0.59%); split: -0.61%, +0.02% InvThroughput: 25654328 -> 25478620 (-0.68%); split: -0.73%, +0.05% VClause: 244799 -> 244499 (-0.12%); split: -0.17%, +0.05% SClause: 313323 -> 315081 (+0.56%); split: -0.40%, +0.96% Copies: 835953 -> 842457 (+0.78%); split: -0.38%, +1.15% Branches: 330136 -> 330210 (+0.02%); split: -0.03%, +0.05% PreSGPRs: 193374 -> 200277 (+3.57%); split: -0.38%, +3.95% PreVGPRs: 223947 -> 224227 (+0.13%); split: -0.02%, +0.15% VALU: 6312413 -> 6314841 (+0.04%); split: -0.02%, +0.06% SALU: 1222275 -> 1227329 (+0.41%); split: -0.26%, +0.67% VMEM: 408421 -> 408412 (-0.00%) SMEM: 430966 -> 430399 (-0.13%) VOPD: 2482 -> 2440 (-1.69%); split: +0.44%, -2.14% Reviewed-by: Georg Lehmann Part-of: --- src/amd/vulkan/radv_pipeline.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index 68ddfc3c944..0249a0f5f20 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -485,6 +485,7 @@ radv_postprocess_nir(struct radv_device *device, const struct radv_graphics_stat nir_move_options sink_opts = nir_move_const_undef | nir_move_copies; if (!stage->key.optimisations_disabled) { + NIR_PASS(_, stage->nir, nir_opt_licm); if (stage->stage != MESA_SHADER_FRAGMENT || !pdev->cache_key.disable_sinking_load_input_fs) sink_opts |= nir_move_load_input;