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:
parent
6b5575baaa
commit
55adbebc62
|
@ -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 */
|
#endif /* IR_VISITOR_H */
|
||||||
|
|
Loading…
Reference in New Issue