Mesa (master): nir/dead_write_vars: Get modes directly from derefs

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Dec 18 19:13:41 UTC 2018


Module: Mesa
Branch: master
Commit: 5dad1abfdcfc772c63e7c883ab34ae1ad39461f3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5dad1abfdcfc772c63e7c883ab34ae1ad39461f3

Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date:   Thu Dec 13 16:30:24 2018 -0600

nir/dead_write_vars: Get modes directly from derefs

Instead of going all the way back to the variable, just look at the
deref.  The modes are guaranteed to be the same by nir_validate whenever
the variable can be found.  This fixes clear_unused_for_modes for
derefs that don't have an accessible variable.

Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>

---

 src/compiler/nir/nir_opt_dead_write_vars.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/compiler/nir/nir_opt_dead_write_vars.c b/src/compiler/nir/nir_opt_dead_write_vars.c
index dd949998cc..75814738d8 100644
--- a/src/compiler/nir/nir_opt_dead_write_vars.c
+++ b/src/compiler/nir/nir_opt_dead_write_vars.c
@@ -56,8 +56,7 @@ static void
 clear_unused_for_modes(struct util_dynarray *unused_writes, nir_variable_mode modes)
 {
    util_dynarray_foreach_reverse(unused_writes, struct write_entry, entry) {
-      nir_variable *var = nir_deref_instr_get_variable(entry->dst);
-      if (var->data.mode & modes)
+      if (entry->dst->mode & modes)
          *entry = util_dynarray_pop(unused_writes, struct write_entry);
    }
 }




More information about the mesa-commit mailing list