radv: move two NIR passes out of tight optimization loop
authorDaniel Schürmann <daniel@schuermann.dev>
Wed, 24 Jun 2020 15:22:54 +0000 (16:22 +0100)
committerMarge Bot <emma+marge@anholt.net>
Tue, 10 May 2022 22:20:54 +0000 (22:20 +0000)
nir_remove_dead_variables
nir_opt_shrink_vectors

Acked-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5668>

src/amd/vulkan/radv_shader.c

index b0b0b8b..6d446e3 100644 (file)
@@ -166,8 +166,6 @@ radv_optimize_nir(struct nir_shader *shader, bool optimize_conservatively, bool
 
       NIR_PASS(progress, shader, nir_opt_copy_prop_vars);
       NIR_PASS(progress, shader, nir_opt_dead_write_vars);
-      NIR_PASS(progress, shader, nir_remove_dead_variables,
-               nir_var_function_temp | nir_var_shader_in | nir_var_shader_out, NULL);
 
       NIR_PASS_V(shader, nir_lower_alu_to_scalar, NULL, NULL);
       NIR_PASS_V(shader, nir_lower_phis_to_scalar, true);
@@ -189,12 +187,15 @@ radv_optimize_nir(struct nir_shader *shader, bool optimize_conservatively, bool
       NIR_PASS(progress, shader, nir_opt_algebraic);
 
       NIR_PASS(progress, shader, nir_opt_undef);
-      NIR_PASS(progress, shader, nir_opt_shrink_vectors);
+
       if (shader->options->max_unroll_iterations) {
          NIR_PASS(progress, shader, nir_opt_loop_unroll);
       }
    } while (progress && !optimize_conservatively);
 
+   NIR_PASS(progress, shader, nir_opt_shrink_vectors);
+   NIR_PASS(progress, shader, nir_remove_dead_variables,
+            nir_var_function_temp | nir_var_shader_in | nir_var_shader_out, NULL);
    NIR_PASS(progress, shader, nir_opt_conditional_discard);
    NIR_PASS(progress, shader, nir_opt_move, nir_move_load_ubo);
 }