Mesa (master): glsl: Add is_rvalue, is_dereference, and is_jump methods
Ian Romanick
idr at kemper.freedesktop.org
Wed Mar 25 17:42:16 UTC 2015
Module: Mesa
Branch: master
Commit: a284c6300665d4388dae14363807a57bb82e4cb5
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a284c6300665d4388dae14363807a57bb82e4cb5
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Tue Mar 24 08:55:15 2015 -0700
glsl: Add is_rvalue, is_dereference, and is_jump methods
These functions deteremine when an IR node is one of the non-leaf
classes.
v2: Adjust indentation to line up. Suggested by Matt.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Francisco Jerez <currojerez at 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..b3a98b8 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
*
More information about the mesa-commit
mailing list