From cbe24a0e9c57a1e65243a9dce1c122597b08d50f Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Mon, 22 Mar 2021 10:02:47 +0100 Subject: [PATCH] broadcom/compiler: use nir_lower_undef_to_zero MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit total instructions in shared programs: 13731663 -> 13721549 (-0.07%) instructions in affected programs: 98242 -> 88128 (-10.29%) helped: 191 HURT: 131 Instructions are helped. total threads in shared programs: 412272 -> 412296 (<.01%) threads in affected programs: 24 -> 48 (100.00%) helped: 12 HURT: 0 Threads are helped. total uniforms in shared programs: 3780693 -> 3779137 (-0.04%) uniforms in affected programs: 10564 -> 9008 (-14.73%) helped: 114 HURT: 7 Uniforms are helped. total max-temps in shared programs: 2319942 -> 2319528 (-0.02%) max-temps in affected programs: 4191 -> 3777 (-9.88%) helped: 113 HURT: 22 Max-temps are helped. total sfu-stalls in shared programs: 31584 -> 31616 (0.10%) sfu-stalls in affected programs: 217 -> 249 (14.75%) helped: 51 HURT: 54 Inconclusive result (value mean confidence interval includes 0). total inst-and-stalls in shared programs: 13763247 -> 13753165 (-0.07%) inst-and-stalls in affected programs: 98719 -> 88637 (-10.21%) helped: 187 HURT: 134 Inst-and-stalls are helped. Reviewed-by: Alejandro PiƱeiro Part-of: --- src/broadcom/compiler/nir_to_vir.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c index 1dcdbe7d149..cd806bfc5b4 100644 --- a/src/broadcom/compiler/nir_to_vir.c +++ b/src/broadcom/compiler/nir_to_vir.c @@ -1824,6 +1824,7 @@ v3d_optimize_nir(struct nir_shader *s) } NIR_PASS(progress, s, nir_opt_undef); + NIR_PASS(progress, s, nir_lower_undef_to_zero); } while (progress); nir_move_options sink_opts = @@ -2158,18 +2159,6 @@ ntq_emit_load_const(struct v3d_compile *c, nir_load_const_instr *instr) _mesa_hash_table_insert(c->def_ht, &instr->def, qregs); } -static void -ntq_emit_ssa_undef(struct v3d_compile *c, nir_ssa_undef_instr *instr) -{ - struct qreg *qregs = ntq_init_ssa_def(c, &instr->def); - - /* VIR needs there to be *some* value, so pick 0 (same as for - * ntq_setup_registers(). - */ - for (int i = 0; i < instr->def.num_components; i++) - qregs[i] = vir_uniform_ui(c, 0); -} - static void ntq_emit_image_size(struct v3d_compile *c, nir_intrinsic_instr *instr) { @@ -3384,7 +3373,7 @@ ntq_emit_instr(struct v3d_compile *c, nir_instr *instr) break; case nir_instr_type_ssa_undef: - ntq_emit_ssa_undef(c, nir_instr_as_ssa_undef(instr)); + unreachable("Should've been lowered by nir_lower_undef_to_zero"); break; case nir_instr_type_tex: