Refactor ir_dereference data fields to subclasses

This commit is contained in:
Ian Romanick
2010-05-19 13:52:29 +02:00
parent 7fe3de6fde
commit 36ea28646c
11 changed files with 58 additions and 57 deletions
+7 -7
View File
@@ -231,11 +231,11 @@ ir_function_cloning_visitor::visit(ir_dereference_variable *ir)
void
ir_function_cloning_visitor::visit(ir_dereference_array *ir)
{
ir->var->accept(this);
ir->array->accept(this);
ir_rvalue *var = this->result->as_rvalue();
ir->selector.array_index->accept(this);
ir->array_index->accept(this);
ir_rvalue *index = this->result->as_rvalue();
@@ -245,11 +245,11 @@ ir_function_cloning_visitor::visit(ir_dereference_array *ir)
void
ir_function_cloning_visitor::visit(ir_dereference_record *ir)
{
ir->var->accept(this);
ir->record->accept(this);
ir_rvalue *var = this->result->as_rvalue();
this->result = new ir_dereference_record(var, strdup(ir->selector.field));
this->result = new ir_dereference_record(var, strdup(ir->field));
}
void
@@ -525,14 +525,14 @@ ir_function_inlining_visitor::visit(ir_dereference_variable *ir)
void
ir_function_inlining_visitor::visit(ir_dereference_array *ir)
{
ir->selector.array_index->accept(this);
ir->var->accept(this);
ir->array_index->accept(this);
ir->array->accept(this);
}
void
ir_function_inlining_visitor::visit(ir_dereference_record *ir)
{
ir->var->accept(this);
ir->record->accept(this);
}
void