nir/derefs: Add a nir_derefs_do_not_alias enum value
authorJason Ekstrand <jason.ekstrand@intel.com>
Mon, 19 Nov 2018 18:32:16 +0000 (12:32 -0600)
committerJason Ekstrand <jason.ekstrand@intel.com>
Wed, 28 Nov 2018 20:29:25 +0000 (14:29 -0600)
This makes some of the code more clear.

Reviewed-by: Thomas Helland <thomashelland90@gmail.com>
src/compiler/nir/nir_deref.c
src/compiler/nir/nir_deref.h

index 4a2e81956d1b106f8300e102e4be4dcc743325ba..7a625bcf92bb16706dc1baf2355b7367e28fe693 100644 (file)
@@ -277,7 +277,7 @@ nir_compare_deref_paths(nir_deref_path *a_path,
                         nir_deref_path *b_path)
 {
    if (a_path->path[0]->var != b_path->path[0]->var)
-      return 0;
+      return nir_derefs_do_not_alias;
 
    /* Start off assuming they fully compare.  We ignore equality for now.  In
     * the end, we'll determine that by containment.
@@ -319,7 +319,7 @@ nir_compare_deref_paths(nir_deref_path *a_path,
                 */
                if (nir_src_as_uint(a_tail->arr.index) !=
                    nir_src_as_uint(b_tail->arr.index))
-                  return 0;
+                  return nir_derefs_do_not_alias;
             } else if (a_tail->arr.index.ssa == b_tail->arr.index.ssa) {
                /* They're the same indirect, continue on */
             } else {
@@ -335,7 +335,7 @@ nir_compare_deref_paths(nir_deref_path *a_path,
       case nir_deref_type_struct: {
          /* If they're different struct members, they don't even alias */
          if (a_tail->strct.index != b_tail->strct.index)
-            return 0;
+            return nir_derefs_do_not_alias;
          break;
       }
 
index c61c3f9366fcecb54a0e9319b60e08b6c4641dca..20d40377e6e9e5fd48402d43aec7966c7b51a37d 100644 (file)
@@ -55,6 +55,7 @@ nir_ssa_def *nir_build_deref_offset(nir_builder *b, nir_deref_instr *deref,
                                     glsl_type_size_align_func size_align);
 
 typedef enum {
+   nir_derefs_do_not_alias     = 0,
    nir_derefs_equal_bit        = (1 << 0),
    nir_derefs_may_alias_bit    = (1 << 1),
    nir_derefs_a_contains_b_bit = (1 << 2),