aco: run opt_algebraic in a loop
Totals from affected shaders: SGPRS: 13920 -> 13656 (-1.90 %) VGPRS: 12972 -> 12960 (-0.09 %) Spilled SGPRs: 0 -> 0 (0.00 %) Spilled VGPRs: 0 -> 0 (0.00 %) Private memory VGPRs: 0 -> 0 (0.00 %) Scratch size: 0 -> 0 (0.00 %) dwords per thread Code Size: 1005680 -> 1000648 (-0.50 %) bytes LDS: 91 -> 91 (0.00 %) blocks Max Waves: 688 -> 688 (0.00 %) Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Connor Abbott <cwabbott0@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
This commit is contained in:
parent
132ae89b19
commit
73184e51d1
|
@ -1331,9 +1331,14 @@ setup_isel_context(Program* program,
|
|||
nir_lower_idiv(nir, nir_lower_idiv_precise);
|
||||
|
||||
/* optimize the lowered ALU operations */
|
||||
nir_copy_prop(nir);
|
||||
nir_opt_constant_folding(nir);
|
||||
nir_opt_algebraic(nir);
|
||||
bool more_algebraic = true;
|
||||
while (more_algebraic) {
|
||||
more_algebraic = false;
|
||||
NIR_PASS_V(nir, nir_copy_prop);
|
||||
NIR_PASS_V(nir, nir_opt_dce);
|
||||
NIR_PASS_V(nir, nir_opt_constant_folding);
|
||||
NIR_PASS(more_algebraic, nir, nir_opt_algebraic);
|
||||
}
|
||||
|
||||
/* Do late algebraic optimization to turn add(a, neg(b)) back into
|
||||
* subs, then the mandatory cleanup after algebraic. Note that it may
|
||||
|
|
Loading…
Reference in New Issue