From: Ian Romanick <ian.d.roman...@intel.com>

These functions deteremine when an IR node is one of the non-leaf
classes.

Signed-off-by: Ian Romanick <ian.d.roman...@intel.com>
Cc: Francisco Jerez <curroje...@riseup.net>
---
 src/glsl/ir.h | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/glsl/ir.h b/src/glsl/ir.h
index fdc22ed..b2b4822 100644
--- a/src/glsl/ir.h
+++ b/src/glsl/ir.h
@@ -109,6 +109,31 @@ public:
    virtual ir_instruction *clone(void *mem_ctx,
                                 struct hash_table *ht) const = 0;
 
+   bool is_rvalue() const
+   {
+      return ir_type == ir_type_dereference_array ||
+         ir_type == ir_type_dereference_record ||
+         ir_type == ir_type_dereference_variable ||
+         ir_type == ir_type_constant ||
+         ir_type == ir_type_expression ||
+         ir_type == ir_type_swizzle ||
+         ir_type == ir_type_texture;
+   }
+
+   bool is_dereference() const
+   {
+      return ir_type == ir_type_dereference_array ||
+         ir_type == ir_type_dereference_record ||
+         ir_type == ir_type_dereference_variable;
+   }
+
+   bool is_jump() const
+   {
+      return ir_type == ir_type_loop_jump ||
+         ir_type == ir_type_return ||
+         ir_type == ir_type_discard;
+   }
+
    /**
     * \name IR instruction downcast functions
     *
-- 
2.1.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to