* Provides a visitor which produces a list of variables referenced.
*/
+#ifndef GLSL_IR_ARRAY_REFCOUNT_H
+#define GLSL_IR_ARRAY_REFCOUNT_H
+
#include "ir.h"
#include "ir_visitor.h"
#include "compiler/glsl_types.h"
virtual ir_visitor_status visit(ir_dereference_variable *);
virtual ir_visitor_status visit_enter(ir_function_signature *);
+ virtual ir_visitor_status visit_enter(ir_dereference_array *);
/**
* Find variable in the hash table, and insert it if not present
/** Get an array_deref_range element from private tracking. */
array_deref_range *get_array_deref();
+ /**
+ * Last ir_dereference_array that was visited
+ *
+ * Used to prevent some redundant calculations.
+ *
+ * \sa ::visit_enter(ir_dereference_array *)
+ */
+ ir_dereference_array *last_array_deref;
+
/**
* \name array_deref_range tracking
*/
unsigned derefs_size;
/*@}*/
};
+
+#endif /* GLSL_IR_ARRAY_REFCOUNT_H */