freedreno/ir3: Fix physical successors for break out of loop

We can't just clobber the existing successor[0] which is based on
logical successor[0]

Suggested-by: Connor Abbott <cwabbott0@gmail.com>
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12742>
This commit is contained in:
Rob Clark
2021-09-07 14:27:17 -07:00
committed by Marge Bot
parent f472949b24
commit c343fa9ecd
+4 -1
View File
@@ -3057,7 +3057,10 @@ emit_if(struct ir3_context *ctx, nir_if *nif)
struct ir3_block *last_else = get_block(ctx, nir_if_last_else_block(nif));
struct ir3_block *after_if =
get_block(ctx, nir_cf_node_as_block(nir_cf_node_next(&nif->cf_node)));
last_else->physical_successors[0] = after_if;
assert(last_else->physical_successors[0] &&
!last_else->physical_successors[1]);
if (after_if != last_else->physical_successors[0])
last_else->physical_successors[1] = after_if;
}
static void