On Tue, Apr 23, 2013 at 10:25 AM, Paul Berry <[email protected]> wrote: > Previously, the only kind of ir_jump that would terminate a basic > block was "return". However, the other possible types of ir_jump > ("break", "continue", and "discard") should terminate a basic block > too. This patch modifies basic block analysis so that it terminates a > basic block on any type of ir_jump, not just ir_return. > > Fixes piglit test dead-code-break-interaction.shader_test. > --- > src/glsl/ir_basic_block.cpp | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/glsl/ir_basic_block.cpp b/src/glsl/ir_basic_block.cpp > index 86e0cf7..2cbc682 100644 > --- a/src/glsl/ir_basic_block.cpp > +++ b/src/glsl/ir_basic_block.cpp > @@ -77,7 +77,7 @@ void call_for_basic_blocks(exec_list *instructions, > callback(leader, ir, data); > leader = NULL; > call_for_basic_blocks(&ir_loop->body_instructions, callback, data); > - } else if (ir->as_return() || ir->as_call()) { > + } else if (ir->as_jump() || ir->as_call()) { > callback(leader, ir, data); > leader = NULL; > } else if ((ir_function = ir->as_function())) { > -- > 1.8.2.1
Series is Reviewed-by: Matt Turner <[email protected]> _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
