Add stub visitor support for ir_texture.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 27 May 2010 00:42:03 +0000 (17:42 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 9 Jun 2010 18:14:57 +0000 (11:14 -0700)
ir.h
ir_constant_expression.cpp
ir_constant_folding.cpp
ir_function_inlining.cpp
ir_hierarchical_visitor.cpp
ir_hierarchical_visitor.h
ir_hv_accept.cpp
ir_visitor.h

diff --git a/ir.h b/ir.h
index 44ffdc554ee87aa07c0b5bb9c1ebd4e641f8d488..a286e7b9324c987c1ce1df4121723dcfd4d5f3c9 100644 (file)
--- a/ir.h
+++ b/ir.h
@@ -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.
     */
index 361a7a1630a6e5801b6716c513cd81541415cac4..e89b5bc7685304c56ce5119edacaeb188a869e7e 100644 (file)
@@ -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 *);
@@ -502,6 +503,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)
 {
index b3f27c80c859b7de26a6352f3233a4eefb301e66..5dc4a7dc654ae42d13b442e2a37a921adc62afd2 100644 (file)
@@ -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 *);
@@ -114,6 +115,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)
 {
index 7cc8a325ffa9c1aaeb6a41347c2c7477766218a0..d66eceedb86c1ce7e3387afac1fd9c7a92dd83a5 100644 (file)
@@ -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 *);
@@ -196,6 +198,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)
 {
@@ -436,6 +446,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)
 {
index ad474878355e11b6b84dd094d5124f674a9637e3..fd77391973f74938cb959102494a584f9262d21d 100644 (file)
@@ -108,6 +108,20 @@ ir_hierarchical_visitor::visit_leave(ir_expression *ir)
    return visit_continue;
 }
 
+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)
 {
index d3ba508cf1c3fd452eb6a9e39b5f81ef9f499967..85bc5bb150ba0ce1fa21fdf9504f6bd0af35ec0f 100644 (file)
@@ -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 *);
index 8d535e24faa5bb105c00809e4591f8e4eeb34c97..7c1798a051a625a0184e6c1b2215eefd37e760db 100644 (file)
@@ -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)
index ba30858fe629f894a47481bd77a243c99f6265be..a6f9d2b7ee33f9b371a71e27399de516c0b5ccca 100644 (file)
@@ -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;