From cda5e0c25ea5f8ab38b69f1f04099acfa3f0ced2 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Tue, 15 Apr 2014 12:30:40 +0200 Subject: glsl: Small optimization for constant conditionals Once the relevant branch has been identified do not iterate over the instructions in the branch, do a linked list insertion instead to avoid the loop. Reviewed-by: Kenneth Graunke --- src/glsl/opt_if_simplification.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/glsl/opt_if_simplification.cpp b/src/glsl/opt_if_simplification.cpp index 2bec8252ea5..e05f03190aa 100644 --- a/src/glsl/opt_if_simplification.cpp +++ b/src/glsl/opt_if_simplification.cpp @@ -90,15 +90,9 @@ ir_if_simplification_visitor::visit_leave(ir_if *ir) * that matters out. */ if (condition_constant->value.b[0]) { - foreach_list_safe(n, &ir->then_instructions) { - ir_instruction *then_ir = (ir_instruction *) n; - ir->insert_before(then_ir); - } + ir->insert_before(&ir->then_instructions); } else { - foreach_list_safe(n, &ir->else_instructions) { - ir_instruction *else_ir = (ir_instruction *) n; - ir->insert_before(else_ir); - } + ir->insert_before(&ir->else_instructions); } ir->remove(); this->made_progress = true; -- cgit v1.2.3