On Wed, Apr 11, 2012 at 9:33 PM, Eric Anholt <e...@anholt.net> wrote: > Cuts 8/1068 instructions from glyphy's fragment shaders on i965. > --- > src/glsl/opt_if_simplification.cpp | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/src/glsl/opt_if_simplification.cpp > b/src/glsl/opt_if_simplification.cpp > index 940dd08..7e88208 100644 > --- a/src/glsl/opt_if_simplification.cpp > +++ b/src/glsl/opt_if_simplification.cpp > @@ -66,6 +66,14 @@ do_if_simplification(exec_list *instructions) > ir_visitor_status > ir_if_simplification_visitor::visit_leave(ir_if *ir) > { > + /* If the if statement has nothing on either side, remove it. */ > + if (ir->then_instructions.is_empty() && > + ir->else_instructions.is_empty()) { > + ir->remove(); > + this->made_progress = true; > + return visit_continue; > + } > + > /* FINISHME: Ideally there would be a way to note that the condition > results > * FINISHME: in a constant before processing both of the other subtrees. > * FINISHME: This can probably be done with some flags, but it would take > -- > 1.7.9.5
Follow on: If then_instructions is empty, is there any benefit in inverting the if conditional and moving the else_instructions into the place of then_instructions? Matt _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev