[Mesa-dev] [PATCH 18.1/23] glsl: Add is_rvalue, is_dereference, and is_jump methods

Matt Turner mattst88 at gmail.com
Tue Mar 24 14:14:22 PDT 2015


On Tue, Mar 24, 2015 at 11:25 AM, Ian Romanick <idr at freedesktop.org> wrote:
> From: Ian Romanick <ian.d.romanick at intel.com>
>
> These functions deteremine when an IR node is one of the non-leaf
> classes.
>
> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
> Cc: 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..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;

Indent these expressions to line up with the first one after the return.


More information about the mesa-dev mailing list