radeonsi: use nir_opt_move

TOTALS FROM AFFECTED SHADERS (35064/58359) - ACO
  Spilled SGPRs: 446 -> 402 (-9.87 %)
  Code Size: 56827400 -> 56672948 (-0.27 %) bytes
  Max Waves: 548680 -> 549799 (0.20 %)

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32782>
This commit is contained in:
Marek Olšák 2024-12-30 04:15:39 -05:00 committed by Marge Bot
parent f114a18501
commit e772a4f3fd

View file

@ -2674,6 +2674,13 @@ static struct nir_shader *si_get_nir_shader(struct si_shader *shader, struct si_
NIR_PASS(progress, nir, nir_opt_sink,
nir_move_const_undef | nir_move_copies | nir_move_alu | nir_move_comparisons |
nir_move_load_ubo | nir_move_load_ssbo);
NIR_PASS(progress, nir, nir_opt_move,
nir_move_const_undef | nir_move_copies | nir_move_alu | nir_move_comparisons |
nir_move_load_ubo);
/* Run nir_opt_move again to make sure that comparisons are as close as possible to the first
* use to prevent SCC spilling.
*/
NIR_PASS(progress, nir, nir_opt_move, nir_move_comparisons);
/* aco only accept scalar const, must be done after si_nir_late_opts()
* which may generate vec const.