glsl: add ir_control_flow_visitor

This is just a subclass of ir_visitor with empty implementations of all
the visit methods for non-control flow nodes.

Used to avoid duplicating that in ir_visitor subclasses.

ir_hierarchical_visitor is another way to solve this, but is less natural
for some applications.
This commit is contained in:
Luca Barbieri 2010-09-07 00:22:34 +02:00 committed by Ian Romanick
parent 6b5575baaa
commit 55adbebc62
1 changed files with 17 additions and 0 deletions

View File

@ -64,4 +64,21 @@ public:
/*@}*/
};
/* NOTE: function calls may never return due to discards inside them
* This is usually not an issue, but if it is, keep it in mind
*/
class ir_control_flow_visitor : public ir_visitor {
public:
virtual void visit(class ir_variable *) {}
virtual void visit(class ir_expression *) {}
virtual void visit(class ir_texture *) {}
virtual void visit(class ir_swizzle *) {}
virtual void visit(class ir_dereference_variable *) {}
virtual void visit(class ir_dereference_array *) {}
virtual void visit(class ir_dereference_record *) {}
virtual void visit(class ir_assignment *) {}
virtual void visit(class ir_constant *) {}
virtual void visit(class ir_call *) {}
};
#endif /* IR_VISITOR_H */