[Mesa-dev] [PATCH] glsl: If an "if" has no "then" or "else" code left, remove it.
Ian Romanick
idr at freedesktop.org
Thu Apr 12 09:40:21 PDT 2012
On 04/11/2012 06:33 PM, Eric Anholt wrote:
> Cuts 8/1068 instructions from glyphy's fragment shaders on i965.
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
> ---
> 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
More information about the mesa-dev
mailing list