Module: Mesa Branch: master Commit: fac9dd1b93829a84f634525ce41f18953fe92433 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fac9dd1b93829a84f634525ce41f18953fe92433
Author: Caio Marcelo de Oliveira Filho <[email protected]> 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 <[email protected]> --- 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 [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
