summaryrefslogtreecommitdiffstats
path: root/src/compiler/nir/nir.h
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2018-05-16 10:02:55 -0400
committerJason Ekstrand <[email protected]>2018-06-22 20:15:54 -0700
commitd80c342d898275cbd6266c37e70dc422590d7d8c (patch)
tree8bf506dc50e2c0567c27b8199b70dd6d555d17c4 /src/compiler/nir/nir.h
parent74212c2414ce04c1331f6c79d74bcc75ea5d4726 (diff)
nir: add deref lowering sanity checking
This will be removed at the end of the transition, but add some tracking plus asserts to help ensure that lowering passes are called at the correct point (pre or post deref instruction lowering) as passes are converted and the point where lower_deref_instrs() is called is moved. Signed-off-by: Rob Clark <[email protected]> Acked-by: Rob Clark <[email protected]> Acked-by: Bas Nieuwenhuizen <[email protected]> Acked-by: Dave Airlie <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/compiler/nir/nir.h')
-rw-r--r--src/compiler/nir/nir.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
index d25aa7491ed..0b950862334 100644
--- a/src/compiler/nir/nir.h
+++ b/src/compiler/nir/nir.h
@@ -2133,8 +2133,19 @@ typedef struct nir_shader {
* access plus one
*/
unsigned num_inputs, num_uniforms, num_outputs, num_shared;
+
+ /* temporary, tracking for which derefs instructions have been lowered
+ * to deref chains
+ */
+ unsigned lowered_derefs;
} nir_shader;
+#define nir_assert_lowered_derefs(shader, mask) \
+ assert(((shader)->lowered_derefs & (mask)) == (mask))
+
+#define nir_assert_unlowered_derefs(shader, mask) \
+ assert(!((shader)->lowered_derefs & (mask)))
+
static inline nir_function_impl *
nir_shader_get_entrypoint(nir_shader *shader)
{
@@ -2681,6 +2692,7 @@ enum nir_lower_deref_flags {
nir_lower_atomic_counter_derefs = (1 << 3),
nir_lower_atomic_derefs = (1 << 4),
nir_lower_image_derefs = (1 << 5),
+ nir_lower_all_derefs = (1 << 6) - 1,
};
bool nir_lower_deref_instrs(nir_shader *shader,