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

Author: Caio Marcelo de Oliveira Filho <caio.olive...@intel.com>
Date:   Tue Apr 10 23:13:39 2018 -0700

nir/vars_to_ssa: Remove an unnecessary deref_arry_type check

Only fully-qualified direct derefs, collected in direct_deref_nodes,
are checked for aliasing, so it is already known up front that they
have only array derefs of type direct.

Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net>

---

 src/compiler/nir/nir_lower_vars_to_ssa.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/compiler/nir/nir_lower_vars_to_ssa.c 
b/src/compiler/nir/nir_lower_vars_to_ssa.c
index f327a14d9b..970eb05307 100644
--- a/src/compiler/nir/nir_lower_vars_to_ssa.c
+++ b/src/compiler/nir/nir_lower_vars_to_ssa.c
@@ -298,15 +298,16 @@ deref_may_be_aliased_node(struct deref_node *node, 
nir_deref *deref,
       switch (deref->child->deref_type) {
       case nir_deref_type_array: {
          nir_deref_array *arr = nir_deref_as_array(deref->child);
-         if (arr->deref_array_type == nir_deref_array_type_indirect)
-            return true;
+
+         /* This is a child of one of the derefs in direct_deref_nodes,
+          * so we know it is direct.
+          */
+         assert(arr->deref_array_type == nir_deref_array_type_direct);
 
          /* If there is an indirect at this level, we're aliased. */
          if (node->indirect)
             return true;
 
-         assert(arr->deref_array_type == nir_deref_array_type_direct);
-
          if (node->children[arr->base_offset] &&
              deref_may_be_aliased_node(node->children[arr->base_offset],
                                        deref->child, state))

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to