[Mesa-dev] [PATCH v2 42/52] nir/opt_intrinsics: Rework progress
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Fri Oct 13 10:31:44 UTC 2017
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
On 13/10/17 06:48, Jason Ekstrand wrote:
> This commit fixes two issues: First, we were returning false regardless
> of whether or not the function made progress. Second, we were calling
> nir_metadata_preserve far more often than needed; we only need to call
> it once per impl.
> ---
> src/compiler/nir/nir_opt_intrinsics.c | 14 +++++++++-----
> 1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/src/compiler/nir/nir_opt_intrinsics.c b/src/compiler/nir/nir_opt_intrinsics.c
> index f12dc87..26a0f96 100644
> --- a/src/compiler/nir/nir_opt_intrinsics.c
> +++ b/src/compiler/nir/nir_opt_intrinsics.c
> @@ -121,8 +121,6 @@ opt_intrinsics_impl(nir_function_impl *impl)
> nir_ssa_def_rewrite_uses(&intrin->dest.ssa,
> nir_src_for_ssa(replacement));
> nir_instr_remove(instr);
> - nir_metadata_preserve(impl, nir_metadata_block_index |
> - nir_metadata_dominance);
> progress = true;
> }
> }
> @@ -136,9 +134,15 @@ nir_opt_intrinsics(nir_shader *shader)
> bool progress = false;
>
> nir_foreach_function(function, shader) {
> - if (function->impl)
> - progress |= opt_intrinsics_impl(function->impl);
> + if (!function->impl)
> + continue;
> +
> + if (opt_intrinsics_impl(function->impl)) {
> + progress = true;
> + nir_metadata_preserve(function->impl, nir_metadata_block_index |
> + nir_metadata_dominance);
> + }
> }
>
> - return false;
> + return progress;
> }
More information about the mesa-dev
mailing list