i965: Move optimizations from brw_nir_lower_io to brw_postprocess_nir.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 25 Feb 2016 05:40:37 +0000 (21:40 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Fri, 26 Feb 2016 23:55:59 +0000 (15:55 -0800)
This simplifies things.  Every caller of brw_nir_lower_io() immediately
calls brw_postprocess_nir().  The only real change this will have is
that we get an extra brw_nir_optimize() call when compiling compute
shaders, but that seems fine.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
src/mesa/drivers/dri/i965/brw_nir.c

index efa4c48de43e6c3b1ca87a00257a05f42a37ba61..6996630f3186fc39edc4d8f225a1e31b76691514 100644 (file)
@@ -518,7 +518,7 @@ brw_nir_lower_io(nir_shader *nir,
    OPT_V(brw_nir_lower_outputs, devinfo, is_scalar);
    OPT_V(nir_lower_io, nir_var_all, is_scalar ? type_size_scalar : type_size_vec4);
 
-   return nir_optimize(nir, is_scalar);
+   return nir;
 }
 
 /* Prepare the given shader for codegen
@@ -539,6 +539,8 @@ brw_postprocess_nir(nir_shader *nir,
    bool progress; /* Written by OPT and OPT_V */
    (void)progress;
 
+   nir = nir_optimize(nir, is_scalar);
+
    if (devinfo->gen >= 6) {
       /* Try and fuse multiply-adds */
       OPT(brw_nir_opt_peephole_ffma);