From 67808a69c678bdf9d4bd548a4c1822e35bfee3b8 Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Mon, 15 Aug 2022 16:36:42 +0000 Subject: [PATCH] freedreno/ir3: Use nir_opt_idiv_const Notably reduces the number of instructions in manhattan31/377 by 101: instructions helped: shaders/closed/android/gfxbench/manhattan31/377.shader_test CL: 1700 -> 1599 (-5.94%) total instructions in shared programs: 1713536 -> 1713313 (-0.01%) instructions in affected programs: 7635 -> 7412 (-2.92%) helped: 12 HURT: 9 total nops in shared programs: 377253 -> 377188 (-0.02%) nops in affected programs: 3170 -> 3105 (-2.05%) helped: 13 HURT: 8 total non-nops in shared programs: 1336283 -> 1336125 (-0.01%) non-nops in affected programs: 3134 -> 2976 (-5.04%) helped: 12 HURT: 4 total mov in shared programs: 66642 -> 66641 (<.01%) mov in affected programs: 145 -> 144 (-0.69%) helped: 1 HURT: 4 total cov in shared programs: 20215 -> 20223 (0.04%) cov in affected programs: 64 -> 72 (12.50%) helped: 0 HURT: 8 total dwords in shared programs: 3650282 -> 3649876 (-0.01%) dwords in affected programs: 11222 -> 10816 (-3.62%) helped: 12 HURT: 0 total constlen in shared programs: 246636 -> 246656 (<.01%) constlen in affected programs: 72 -> 92 (27.78%) helped: 0 HURT: 5 total cat0 in shared programs: 411874 -> 411809 (-0.02%) cat0 in affected programs: 3414 -> 3349 (-1.90%) helped: 13 HURT: 8 total cat1 in shared programs: 87109 -> 87116 (<.01%) cat1 in affected programs: 398 -> 405 (1.76%) helped: 1 HURT: 12 total cat2 in shared programs: 797105 -> 797030 (<.01%) cat2 in affected programs: 1619 -> 1544 (-4.63%) helped: 12 HURT: 0 total cat3 in shared programs: 348412 -> 348322 (-0.03%) cat3 in affected programs: 404 -> 314 (-22.28%) helped: 12 HURT: 0 total sstall in shared programs: 133300 -> 133302 (<.01%) sstall in affected programs: 73 -> 75 (2.74%) helped: 0 HURT: 1 total (ss) in shared programs: 36137 -> 36139 (<.01%) (ss) in affected programs: 54 -> 56 (3.70%) helped: 0 HURT: 2 total systall in shared programs: 323494 -> 323624 (0.04%) systall in affected programs: 1591 -> 1721 (8.17%) helped: 4 HURT: 2 total (sy) in shared programs: 14306 -> 14308 (0.01%) (sy) in affected programs: 46 -> 48 (4.35%) helped: 0 HURT: 2 Part-of: --- src/freedreno/ir3/ir3_nir.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/freedreno/ir3/ir3_nir.c b/src/freedreno/ir3/ir3_nir.c index 64e8f6e94b3..a63b66f64bc 100644 --- a/src/freedreno/ir3/ir3_nir.c +++ b/src/freedreno/ir3/ir3_nir.c @@ -355,7 +355,8 @@ ir3_finalize_nir(struct ir3_compiler *compiler, nir_shader *s) nir_lower_idiv_options idiv_options = { .allow_fp16 = true, }; - const bool idiv_progress = OPT(s, nir_lower_idiv, &idiv_options); + bool idiv_progress = OPT(s, nir_opt_idiv_const, 8); + idiv_progress |= OPT(s, nir_lower_idiv, &idiv_options); if (idiv_progress) ir3_optimize_loop(compiler, s);