Refactor ir_dereference support for ir_visitor
Move the accept method for visitors from ir_dereference to the derived classes.
This commit is contained in:
@@ -70,7 +70,9 @@ public:
|
||||
virtual void visit(ir_function *);
|
||||
virtual void visit(ir_expression *);
|
||||
virtual void visit(ir_swizzle *);
|
||||
virtual void visit(ir_dereference *);
|
||||
virtual void visit(ir_dereference_variable *);
|
||||
virtual void visit(ir_dereference_array *);
|
||||
virtual void visit(ir_dereference_record *);
|
||||
virtual void visit(ir_assignment *);
|
||||
virtual void visit(ir_constant *);
|
||||
virtual void visit(ir_call *);
|
||||
@@ -162,11 +164,21 @@ ir_expression_flattening_visitor::visit(ir_swizzle *ir)
|
||||
|
||||
|
||||
void
|
||||
ir_expression_flattening_visitor::visit(ir_dereference *ir)
|
||||
ir_expression_flattening_visitor::visit(ir_dereference_variable *ir)
|
||||
{
|
||||
ir->var->accept(this);
|
||||
}
|
||||
|
||||
void
|
||||
ir_expression_flattening_visitor::visit(ir_dereference_array *ir)
|
||||
{
|
||||
ir->selector.array_index->accept(this);
|
||||
ir->var->accept(this);
|
||||
}
|
||||
|
||||
void
|
||||
ir_expression_flattening_visitor::visit(ir_dereference_record *ir)
|
||||
{
|
||||
if (ir->mode == ir_dereference::ir_reference_array) {
|
||||
ir->selector.array_index->accept(this);
|
||||
}
|
||||
ir->var->accept(this);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user