freedreno/ir3: add experimental GCM pass
Generally seems to do worse on instruction count and register usage, according to shader-db. But shader-db also doesn't do a very good job of weighting loop bodies, so that might not be totally valid. So add an env variable to enable GCM pass for easier experimentation. Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
@@ -97,6 +97,13 @@ ir3_optimize_loop(nir_shader *s)
|
||||
progress |= OPT(s, nir_copy_prop);
|
||||
progress |= OPT(s, nir_opt_dce);
|
||||
progress |= OPT(s, nir_opt_cse);
|
||||
static int gcm = -1;
|
||||
if (gcm == -1)
|
||||
gcm = env2u("GCM");
|
||||
if (gcm == 1)
|
||||
progress |= OPT(s, nir_opt_gcm, true);
|
||||
else if (gcm == 2)
|
||||
progress |= OPT(s, nir_opt_gcm, false);
|
||||
progress |= OPT(s, nir_opt_peephole_select, 16);
|
||||
progress |= OPT(s, nir_opt_intrinsics);
|
||||
progress |= OPT(s, nir_opt_algebraic);
|
||||
|
||||
Reference in New Issue
Block a user