summaryrefslogtreecommitdiffstats
path: root/src/glsl/ir.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/glsl/ir.h')
-rw-r--r--src/glsl/ir.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/glsl/ir.h b/src/glsl/ir.h
index b6cd1bae31c..3be096270d8 100644
--- a/src/glsl/ir.h
+++ b/src/glsl/ir.h
@@ -112,10 +112,10 @@ protected:
class ir_rvalue : public ir_instruction {
public:
- class ir_constant *constant_expression_value();
-
virtual ir_rvalue *clone(struct hash_table *) const = 0;
+ virtual ir_constant *constant_expression_value() = 0;
+
virtual ir_rvalue * as_rvalue()
{
return this;
@@ -511,6 +511,8 @@ public:
virtual ir_assignment *clone(struct hash_table *ht) const;
+ virtual ir_constant *constant_expression_value();
+
virtual void accept(ir_visitor *v)
{
v->visit(this);
@@ -651,6 +653,8 @@ public:
virtual ir_expression *clone(struct hash_table *ht) const;
+ virtual ir_constant *constant_expression_value();
+
static unsigned int get_num_operands(ir_expression_operation);
unsigned int get_num_operands() const
{
@@ -695,6 +699,8 @@ public:
virtual ir_call *clone(struct hash_table *ht) const;
+ virtual ir_constant *constant_expression_value();
+
virtual ir_call *as_call()
{
return this;
@@ -929,6 +935,8 @@ public:
virtual ir_texture *clone(struct hash_table *) const;
+ virtual ir_constant *constant_expression_value();
+
virtual void accept(ir_visitor *v)
{
v->visit(this);
@@ -1019,6 +1027,8 @@ public:
virtual ir_swizzle *clone(struct hash_table *) const;
+ virtual ir_constant *constant_expression_value();
+
virtual ir_swizzle *as_swizzle()
{
return this;
@@ -1083,6 +1093,8 @@ public:
virtual ir_dereference_variable *clone(struct hash_table *) const;
+ virtual ir_constant *constant_expression_value();
+
virtual ir_dereference_variable *as_dereference_variable()
{
return this;
@@ -1129,6 +1141,8 @@ public:
virtual ir_dereference_array *clone(struct hash_table *) const;
+ virtual ir_constant *constant_expression_value();
+
virtual ir_dereference_array *as_dereference_array()
{
return this;
@@ -1165,6 +1179,8 @@ public:
virtual ir_dereference_record *clone(struct hash_table *) const;
+ virtual ir_constant *constant_expression_value();
+
/**
* Get the variable that is ultimately referenced by an r-value
*/
@@ -1223,6 +1239,8 @@ public:
virtual ir_constant *clone(struct hash_table *) const;
+ virtual ir_constant *constant_expression_value();
+
virtual ir_constant *as_constant()
{
return this;