diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2010-05-26 17:42:03 -0700 |
---|---|---|
committer | Kenneth Graunke <kenneth@whitecape.org> | 2010-06-09 11:14:57 -0700 |
commit | 26d74cd1d140786b8f4b1ccbaf500a16e68eec3c (patch) | |
tree | 56e280b8452d98a2486a54a91491942f69090d9e | |
parent | be298063b501a3e0bd769209f531fd23e4e4646e (diff) |
Add stub visitor support for ir_texture.
-rw-r--r-- | ir.h | 7 | ||||
-rw-r--r-- | ir_constant_expression.cpp | 10 | ||||
-rw-r--r-- | ir_constant_folding.cpp | 9 | ||||
-rw-r--r-- | ir_function_inlining.cpp | 18 | ||||
-rw-r--r-- | ir_hierarchical_visitor.cpp | 14 | ||||
-rw-r--r-- | ir_hierarchical_visitor.h | 2 | ||||
-rw-r--r-- | ir_hv_accept.cpp | 6 | ||||
-rw-r--r-- | ir_visitor.h | 1 |
8 files changed, 67 insertions, 0 deletions
@@ -775,6 +775,13 @@ public: /* empty */ } + virtual void accept(ir_visitor *v) + { + v->visit(this); + } + + virtual ir_visitor_status accept(ir_hierarchical_visitor *); + /** * Return a string representing the ir_texture_opcode. */ diff --git a/ir_constant_expression.cpp b/ir_constant_expression.cpp index 361a7a1630..e89b5bc768 100644 --- a/ir_constant_expression.cpp +++ b/ir_constant_expression.cpp @@ -67,6 +67,7 @@ public: virtual void visit(ir_function_signature *); virtual void visit(ir_function *); virtual void visit(ir_expression *); + virtual void visit(ir_texture *); virtual void visit(ir_swizzle *); virtual void visit(ir_dereference_variable *); virtual void visit(ir_dereference_array *); @@ -503,6 +504,15 @@ ir_constant_visitor::visit(ir_expression *ir) void +ir_constant_visitor::visit(ir_texture *ir) +{ + // FINISHME: Do stuff with texture lookups + (void) ir; + value = NULL; +} + + +void ir_constant_visitor::visit(ir_swizzle *ir) { (void) ir; diff --git a/ir_constant_folding.cpp b/ir_constant_folding.cpp index b3f27c80c8..5dc4a7dc65 100644 --- a/ir_constant_folding.cpp +++ b/ir_constant_folding.cpp @@ -60,6 +60,7 @@ public: virtual void visit(ir_function_signature *); virtual void visit(ir_function *); virtual void visit(ir_expression *); + virtual void visit(ir_texture *); virtual void visit(ir_swizzle *); virtual void visit(ir_dereference_variable *); virtual void visit(ir_dereference_array *); @@ -115,6 +116,14 @@ ir_constant_folding_visitor::visit(ir_expression *ir) void +ir_constant_folding_visitor::visit(ir_texture *ir) +{ + // FINISHME: Do stuff with texture lookups + (void) ir; +} + + +void ir_constant_folding_visitor::visit(ir_swizzle *ir) { ir->val->accept(this); diff --git a/ir_function_inlining.cpp b/ir_function_inlining.cpp index 7cc8a325ff..d66eceedb8 100644 --- a/ir_function_inlining.cpp +++ b/ir_function_inlining.cpp @@ -50,6 +50,7 @@ public: virtual ir_visitor_status visit_enter(ir_call *); virtual ir_visitor_status visit_enter(ir_assignment *); virtual ir_visitor_status visit_enter(ir_return *); + virtual ir_visitor_status visit_enter(ir_texture *); virtual ir_visitor_status visit_enter(ir_swizzle *); bool progress; @@ -118,6 +119,7 @@ public: virtual void visit(ir_function_signature *); virtual void visit(ir_function *); virtual void visit(ir_expression *); + virtual void visit(ir_texture *); virtual void visit(ir_swizzle *); virtual void visit(ir_dereference_variable *); virtual void visit(ir_dereference_array *); @@ -197,6 +199,14 @@ ir_function_cloning_visitor::visit(ir_expression *ir) void +ir_function_cloning_visitor::visit(ir_texture *ir) +{ + // FINISHME: Do stuff with texture lookups + (void) ir; +} + + +void ir_function_cloning_visitor::visit(ir_swizzle *ir) { ir->val->accept(this); @@ -437,6 +447,14 @@ ir_function_inlining_visitor::visit_enter(ir_return *ir) ir_visitor_status +ir_function_inlining_visitor::visit_enter(ir_texture *ir) +{ + (void) ir; + return visit_continue_with_parent; +} + + +ir_visitor_status ir_function_inlining_visitor::visit_enter(ir_swizzle *ir) { (void) ir; diff --git a/ir_hierarchical_visitor.cpp b/ir_hierarchical_visitor.cpp index ad47487835..fd77391973 100644 --- a/ir_hierarchical_visitor.cpp +++ b/ir_hierarchical_visitor.cpp @@ -109,6 +109,20 @@ ir_hierarchical_visitor::visit_leave(ir_expression *ir) } ir_visitor_status +ir_hierarchical_visitor::visit_enter(ir_texture *ir) +{ + (void) ir; + return visit_continue; +} + +ir_visitor_status +ir_hierarchical_visitor::visit_leave(ir_texture *ir) +{ + (void) ir; + return visit_continue; +} + +ir_visitor_status ir_hierarchical_visitor::visit_enter(ir_swizzle *ir) { (void) ir; diff --git a/ir_hierarchical_visitor.h b/ir_hierarchical_visitor.h index d3ba508cf1..85bc5bb150 100644 --- a/ir_hierarchical_visitor.h +++ b/ir_hierarchical_visitor.h @@ -113,6 +113,8 @@ public: virtual ir_visitor_status visit_leave(class ir_function *); virtual ir_visitor_status visit_enter(class ir_expression *); virtual ir_visitor_status visit_leave(class ir_expression *); + virtual ir_visitor_status visit_enter(class ir_texture *); + virtual ir_visitor_status visit_leave(class ir_texture *); virtual ir_visitor_status visit_enter(class ir_swizzle *); virtual ir_visitor_status visit_leave(class ir_swizzle *); virtual ir_visitor_status visit_enter(class ir_dereference_array *); diff --git a/ir_hv_accept.cpp b/ir_hv_accept.cpp index 8d535e24fa..7c1798a051 100644 --- a/ir_hv_accept.cpp +++ b/ir_hv_accept.cpp @@ -156,6 +156,12 @@ done: return v->visit_leave(this); } +ir_visitor_status +ir_texture::accept(ir_hierarchical_visitor *v) +{ + return visit_continue_with_parent; +} + ir_visitor_status ir_swizzle::accept(ir_hierarchical_visitor *v) diff --git a/ir_visitor.h b/ir_visitor.h index ba30858fe6..a6f9d2b7ee 100644 --- a/ir_visitor.h +++ b/ir_visitor.h @@ -48,6 +48,7 @@ public: virtual void visit(class ir_function_signature *) = 0; virtual void visit(class ir_function *) = 0; virtual void visit(class ir_expression *) = 0; + virtual void visit(class ir_texture *) = 0; virtual void visit(class ir_swizzle *) = 0; virtual void visit(class ir_dereference_variable *) = 0; virtual void visit(class ir_dereference_array *) = 0; |