Prevents regressions in ~128 tests when fixing unlink_block_successors in the next commit.
XXX: Zero thought has been put into whether this is the right solution Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> --- src/glsl/nir/nir_control_flow.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) The problem is that this fake link causes the same block to be block->successors[0] and block->successors[1]... diff --git a/src/glsl/nir/nir_control_flow.c b/src/glsl/nir/nir_control_flow.c index 5c03375..d0b2a10 100644 --- a/src/glsl/nir/nir_control_flow.c +++ b/src/glsl/nir/nir_control_flow.c @@ -542,13 +542,15 @@ void unlink_jump(nir_block *block, nir_jump_type type) nir_loop *loop = nir_cf_node_as_loop(nir_cf_node_prev(&next->cf_node)); - /* insert fake link */ + /* insert fake link if necessary */ nir_cf_node *last = nir_loop_last_cf_node(loop); assert(last->type == nir_cf_node_block); nir_block *last_block = nir_cf_node_as_block(last); - last_block->successors[1] = next; - block_add_pred(next, last_block); + if (last_block->successors[0] != next) { + last_block->successors[1] = next; + block_add_pred(next, last_block); + } } } -- 2.5.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev