intel/nir: Combine store_derefs after vectorizing IO

Shader-db results for skl:

    total instructions in shared programs: 15232903 -> 15224781 (-0.05%)
    instructions in affected programs: 61246 -> 53124 (-13.26%)
    helped: 221
    HURT: 0

    total cycles in shared programs: 371440470 -> 371398018 (-0.01%)
    cycles in affected programs: 281363 -> 238911 (-15.09%)
    helped: 221
    HURT: 0

Results for bdw are very similar.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Caio Marcelo de Oliveira Filho
2019-03-08 11:50:47 -08:00
parent 822a8865e4
commit 10dfb0011e

View File

@@ -791,6 +791,7 @@ brw_nir_link_shaders(const struct brw_compiler *compiler,
}
NIR_PASS_V(*producer, nir_lower_io_to_vector, nir_var_shader_out);
NIR_PASS_V(*producer, nir_opt_combine_stores, nir_var_shader_out);
NIR_PASS_V(*consumer, nir_lower_io_to_vector, nir_var_shader_in);
if ((*producer)->info.stage != MESA_SHADER_TESS_CTRL) {