diff options
Diffstat (limited to 'ir_dead_code.cpp')
-rw-r--r-- | ir_dead_code.cpp | 53 |
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); } |