summaryrefslogtreecommitdiff
path: root/ir_dead_code.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ir_dead_code.cpp')
-rw-r--r--ir_dead_code.cpp53
1 files changed, 6 insertions, 47 deletions
diff --git a/ir_dead_code.cpp b/ir_dead_code.cpp
index 8a83394..3f58642 100644
--- a/ir_dead_code.cpp
+++ b/ir_dead_code.cpp
@@ -114,13 +114,7 @@ ir_dead_code_visitor::visit(ir_variable *ir)
void
ir_dead_code_visitor::visit(ir_loop *ir)
{
- visit_exec_list(&ir->body_instructions, this);
- if (ir->from)
- ir->from->accept(this);
- if (ir->to)
- ir->to->accept(this);
- if (ir->increment)
- ir->increment->accept(this);
+ ir->visit_children();
}
void
@@ -133,7 +127,7 @@ ir_dead_code_visitor::visit(ir_loop_jump *ir)
void
ir_dead_code_visitor::visit(ir_function_signature *ir)
{
- visit_exec_list(&ir->body, this);
+ ir->visit_children(this);
}
void
@@ -145,11 +139,7 @@ ir_dead_code_visitor::visit(ir_function *ir)
void
ir_dead_code_visitor::visit(ir_expression *ir)
{
- unsigned int operand;
-
- for (operand = 0; operand < ir->get_num_operands(); operand++) {
- ir->operands[operand]->accept(this);
- }
+ ir->visit_children(this);
}
@@ -242,52 +232,21 @@ ir_dead_code_visitor::visit(ir_call *ir)
void
ir_dead_code_visitor::visit(ir_return *ir)
{
- ir_rvalue *val = ir->get_value();
-
- if (val)
- val->accept(this);
+ ir->visit_children(this);
}
void
ir_dead_code_visitor::visit(ir_if *ir)
{
- ir->condition->accept(this);
-
- visit_exec_list(&ir->then_instructions, this);
- visit_exec_list(&ir->else_instructions, this);
+ ir->visit_children(this);
}
void
ir_dead_code_visitor::visit(ir_texture *ir)
{
- ir->coordinate->accept(this);
-
- if (ir->projector != NULL)
- ir->projector->accept(this);
-
- if (ir->shadow_comparitor != NULL)
- ir->shadow_comparitor->accept(this);
-
- switch (ir->op) {
- case ir_tex:
- break;
-
- case ir_txb:
- case ir_txf:
- ir->lod_info.bias->accept(this);
- break;
-
- case ir_txl:
- ir->lod_info.lod->accept(this);
- break;
-
- case ir_txd:
- ir->lod_info.grad.dPdx->accept(this);
- ir->lod_info.grad.dPdy->accept(this);
- break;
- }
+ ir->visit_children(this);
}