From d60282f5d2cc6176210942cf29c5df1722ebb8ca Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Mon, 18 Apr 2022 12:37:19 -0700 Subject: [PATCH] freedreno/ir3: Make sched nodes before adding deps. The mark_kill_path() during dep setup follows SSA srcs, which when a phi is involved may include a def from later in the same block, that we hadn't created yet. Part-of: --- src/freedreno/ir3/ir3_sched.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/freedreno/ir3/ir3_sched.c b/src/freedreno/ir3/ir3_sched.c index ccfc9c3f44d..cd76918e371 100644 --- a/src/freedreno/ir3/ir3_sched.c +++ b/src/freedreno/ir3/ir3_sched.c @@ -1142,10 +1142,11 @@ sched_dag_init(struct ir3_sched_ctx *ctx) { ctx->dag = dag_create(ctx); - foreach_instr (instr, &ctx->unscheduled_list) { + foreach_instr (instr, &ctx->unscheduled_list) sched_node_init(ctx, instr); + + foreach_instr (instr, &ctx->unscheduled_list) sched_node_add_deps(instr); - } dag_traverse_bottom_up(ctx->dag, sched_dag_max_delay_cb, NULL); }