i965/link: Make more use of NIR_PASS
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 28 Sep 2017 16:58:38 +0000 (09:58 -0700)
committerJordan Justen <jordan.l.justen@intel.com>
Thu, 28 Sep 2017 23:20:35 +0000 (16:20 -0700)
[jordan.l.justen@intel.com: Tested NIR_TEST_CLONE=1 with valgrind]
Tested-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
src/mesa/drivers/dri/i965/brw_link.cpp

index 80868569ed7ab73e1076055799075300f91b14bc..dd6f895db07243455a074f4500c55981115a2084 100644 (file)
@@ -278,12 +278,12 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg)
             nir_shader *producer = shProg->_LinkedShaders[i]->Program->nir;
             nir_shader *consumer = shProg->_LinkedShaders[next]->Program->nir;
 
-            nir_remove_dead_variables(producer, nir_var_shader_out);
-            nir_remove_dead_variables(consumer, nir_var_shader_in);
+            NIR_PASS_V(producer, nir_remove_dead_variables, nir_var_shader_out);
+            NIR_PASS_V(consumer, nir_remove_dead_variables, nir_var_shader_in);
 
             if (nir_remove_unused_varyings(producer, consumer)) {
-               nir_lower_global_vars_to_local(producer);
-               nir_lower_global_vars_to_local(consumer);
+               NIR_PASS_V(producer, nir_lower_global_vars_to_local);
+               NIR_PASS_V(consumer, nir_lower_global_vars_to_local);
 
                nir_variable_mode indirect_mask = (nir_variable_mode) 0;
                if (compiler->glsl_compiler_options[i].EmitNoIndirectTemp)
@@ -293,8 +293,8 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg)
                 * temporaries so we need to lower indirects on any of the
                 * varyings we have demoted here.
                 */
-               nir_lower_indirect_derefs(producer, indirect_mask);
-               nir_lower_indirect_derefs(consumer, indirect_mask);
+               NIR_PASS_V(producer, nir_lower_indirect_derefs, indirect_mask);
+               NIR_PASS_V(consumer, nir_lower_indirect_derefs, indirect_mask);
 
                const bool p_is_scalar = compiler->scalar_stage[producer->stage];
                producer = brw_nir_optimize(producer, compiler, p_is_scalar);