total instructions in shared programs: 1500212 -> 1500153 (-0.00%) instructions in affected programs: 17777 -> 17718 (-0.33%) --- src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp b/src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp index 63a3e5b..82e83b8 100644 --- a/src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp +++ b/src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp @@ -33,6 +33,7 @@ * * - if/endif * - if/else/endif + * - .../else/endif */ bool dead_control_flow_eliminate(backend_visitor *v) @@ -59,16 +60,17 @@ dead_control_flow_eliminate(backend_visitor *v) found = true; } else if (prev_inst->opcode == BRW_OPCODE_ELSE) { else_inst = prev_inst; + found = true; prev_inst = (backend_instruction *) prev_inst->prev; if (prev_inst->opcode == BRW_OPCODE_IF) { if_inst = prev_inst; - found = true; } } if (found) { - if_inst->remove(); + if (if_inst) + if_inst->remove(); if (else_inst) else_inst->remove(); endif_inst->remove(); -- 1.8.3.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev