freedreno: Remove silly return from ir3_optimize_nir().
authorEric Anholt <eric@anholt.net>
Wed, 5 Jun 2019 18:43:13 +0000 (11:43 -0700)
committerEric Anholt <eric@anholt.net>
Sat, 22 Jun 2019 00:14:43 +0000 (17:14 -0700)
We only ever return the shader we were passed in (but internally
modified).

Reviewed-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
src/freedreno/ir3/ir3_context.c
src/freedreno/ir3/ir3_nir.c
src/freedreno/ir3/ir3_nir.h
src/freedreno/ir3/ir3_shader.c
src/gallium/drivers/freedreno/ir3/ir3_cmdline.c

index 49a7776164ebd67dd8ac79264f669e64e8279945..dc9ed10d84496a302cd93b8b09780e7b96e22155 100644 (file)
@@ -71,13 +71,9 @@ ir3_context_init(struct ir3_compiler *compiler,
         * creating duplicate variants..
         */
 
-       if (ir3_key_lowers_nir(&so->key)) {
-               nir_shader *s = nir_shader_clone(ctx, so->shader->nir);
-               ctx->s = ir3_optimize_nir(so->shader, s, &so->key);
-       } else {
-               /* fast-path for shader key that lowers nothing in NIR: */
-               ctx->s = nir_shader_clone(ctx, so->shader->nir);
-       }
+       ctx->s = nir_shader_clone(ctx, so->shader->nir);
+       if (ir3_key_lowers_nir(&so->key))
+               ir3_optimize_nir(so->shader, ctx->s, &so->key);
 
        /* this needs to be the last pass run, so do this here instead of
         * in ir3_optimize_nir():
index 23dabee1fb020068cee5724d241d15825d74f152..cb97a2202ed667db3044ab4985824b9d30c2e09c 100644 (file)
@@ -174,7 +174,7 @@ ir3_optimize_loop(nir_shader *s)
        } while (progress);
 }
 
-struct nir_shader *
+void
 ir3_optimize_nir(struct ir3_shader *shader, nir_shader *s,
                const struct ir3_shader_key *key)
 {
@@ -281,8 +281,6 @@ ir3_optimize_nir(struct ir3_shader *shader, nir_shader *s,
        if (!key) {
                ir3_setup_const_state(shader, s);
        }
-
-       return s;
 }
 
 static void
index 6314c097956e36a2c4399e2243e6eb57618343ce..a9b39e235b56ee6927ee1a2008335fc6877de2e8 100644 (file)
@@ -43,7 +43,7 @@ bool ir3_nir_move_varying_inputs(nir_shader *shader);
 
 const nir_shader_compiler_options * ir3_get_compiler_options(struct ir3_compiler *compiler);
 bool ir3_key_lowers_nir(const struct ir3_shader_key *key);
-struct nir_shader * ir3_optimize_nir(struct ir3_shader *shader, nir_shader *s,
+void ir3_optimize_nir(struct ir3_shader *shader, nir_shader *s,
                const struct ir3_shader_key *key);
 
 bool ir3_nir_analyze_ubo_ranges(nir_shader *nir, struct ir3_shader *shader);
index 228c7609f505d59da849c6a689ac70c73ed51d9d..f366332c30394ada0518cf41b7452210557b91c4 100644 (file)
@@ -292,7 +292,9 @@ ir3_shader_from_nir(struct ir3_compiler *compiler, nir_shader *nir)
        NIR_PASS_V(nir, nir_lower_io_arrays_to_elements_no_indirects, false);
 
        /* do first pass optimization, ignoring the key: */
-       shader->nir = ir3_optimize_nir(shader, nir, NULL);
+       ir3_optimize_nir(shader, nir, NULL);
+
+       shader->nir = nir;
        if (ir3_shader_debug & IR3_DBG_DISASM) {
                printf("dump nir%d: type=%d", shader->id, shader->type);
                nir_print_shader(shader->nir, stdout);
index 34b39aa65f087526e19f8605cdbc1b16c7ec958d..f8acc480d69ac9f06862928bab6849d624801d7c 100644 (file)
@@ -490,7 +490,9 @@ int main(int argc, char **argv)
        }
 
        s.compiler = compiler;
-       s.nir = ir3_optimize_nir(&s, nir, NULL);
+       s.nir = nir;
+
+       ir3_optimize_nir(&s, nir, NULL);
 
        v.key = key;
        v.shader = &s;