mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 13:58:04 +02:00
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@intel.com> Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
parent
25d6cdd2ff
commit
a284c63006
1 changed files with 25 additions and 0 deletions
|
|
@ -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
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue