[Mesa-dev] [PATCH v3 099/104] nir/copy_prop_vars: Re-order some logic in compare_derefs
Jason Ekstrand
jason at jlekstrand.net
Tue Apr 3 18:39:43 UTC 2018
---
src/compiler/nir/nir_opt_copy_prop_vars.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/compiler/nir/nir_opt_copy_prop_vars.c b/src/compiler/nir/nir_opt_copy_prop_vars.c
index cc8f00f..dca1632 100644
--- a/src/compiler/nir/nir_opt_copy_prop_vars.c
+++ b/src/compiler/nir/nir_opt_copy_prop_vars.c
@@ -151,19 +151,19 @@ compare_derefs(nir_deref_var *a, nir_deref_var *b)
nir_deref_array *a_arr = nir_deref_as_array(a_tail);
nir_deref_array *b_arr = nir_deref_as_array(b_tail);
- if (a_arr->deref_array_type == nir_deref_array_type_direct &&
- b_arr->deref_array_type == nir_deref_array_type_direct) {
- /* If they're both direct and have different offsets, they
- * don't even alias much less anything else.
- */
- if (a_arr->base_offset != b_arr->base_offset)
- return 0;
- } else if (a_arr->deref_array_type == nir_deref_array_type_wildcard) {
+ if (a_arr->deref_array_type == nir_deref_array_type_wildcard) {
if (b_arr->deref_array_type != nir_deref_array_type_wildcard)
result &= ~derefs_b_contains_a_bit;
} else if (b_arr->deref_array_type == nir_deref_array_type_wildcard) {
if (a_arr->deref_array_type != nir_deref_array_type_wildcard)
result &= ~derefs_a_contains_b_bit;
+ } else if (a_arr->deref_array_type == nir_deref_array_type_direct &&
+ b_arr->deref_array_type == nir_deref_array_type_direct) {
+ /* If they're both direct and have different offsets, they
+ * don't even alias much less anything else.
+ */
+ if (a_arr->base_offset != b_arr->base_offset)
+ return 0;
} else if (a_arr->deref_array_type == nir_deref_array_type_indirect &&
b_arr->deref_array_type == nir_deref_array_type_indirect) {
assert(a_arr->indirect.is_ssa && b_arr->indirect.is_ssa);
--
2.5.0.400.gff86faf
More information about the mesa-dev
mailing list