[Mesa-dev] [PATCH] nir: clone instruction set rather than removing individual entries

Thomas Helland thomashelland90 at gmail.com
Thu Feb 21 11:32:51 UTC 2019


This patch is:

Reviewed-by: Thomas Helland<thomashelland90 at gmail.com>

Den ons. 20. feb. 2019 kl. 04:04 skrev Timothy Arceri <tarceri at itsqueeze.com>:
>
> This reduces the time spent in nir_opt_cse() by almost a half.
> ---
>  src/compiler/nir/nir_opt_cse.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/src/compiler/nir/nir_opt_cse.c b/src/compiler/nir/nir_opt_cse.c
> index bf42a6a33dc..3c3617d852a 100644
> --- a/src/compiler/nir/nir_opt_cse.c
> +++ b/src/compiler/nir/nir_opt_cse.c
> @@ -39,9 +39,10 @@
>   */
>
>  static bool
> -cse_block(nir_block *block, struct set *instr_set)
> +cse_block(nir_block *block, struct set *dominance_set)
>  {
>     bool progress = false;
> +   struct set *instr_set = _mesa_set_clone(dominance_set, NULL);
>
>     nir_foreach_instr_safe(instr, block) {
>        if (nir_instr_set_add_or_rewrite(instr_set, instr)) {
> @@ -55,8 +56,7 @@ cse_block(nir_block *block, struct set *instr_set)
>        progress |= cse_block(child, instr_set);
>     }
>
> -   nir_foreach_instr(instr, block)
> -     nir_instr_set_remove(instr_set, instr);
> +   _mesa_set_destroy(instr_set, NULL);
>
>     return progress;
>  }
> --
> 2.20.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list