From: Chia-I Wu Date: Tue, 16 Aug 2022 22:10:23 +0000 (-0700) Subject: ir3: fix predicate splitting in scheduler X-Git-Tag: upstream/22.3.5~4152 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b1cb7643162758ba52ce3f09df69746d94d91245;p=platform%2Fupstream%2Fmesa.git ir3: fix predicate splitting in scheduler Fix up src->def->instr, not src->instr. Cc: mesa-stable Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7014 Part-of: --- diff --git a/src/freedreno/ir3/ir3.h b/src/freedreno/ir3/ir3.h index c23d3af..222eb61 100644 --- a/src/freedreno/ir3/ir3.h +++ b/src/freedreno/ir3/ir3.h @@ -196,8 +196,8 @@ struct ir3_register { } array; }; - /* For IR3_REG_DEST, pointer back to the instruction containing this - * register. + /* For IR3_REG_SSA, dst registers contain pointer back to the instruction + * containing this register. */ struct ir3_instruction *instr; diff --git a/src/freedreno/ir3/ir3_sched.c b/src/freedreno/ir3/ir3_sched.c index 91c43de..80de9f5 100644 --- a/src/freedreno/ir3/ir3_sched.c +++ b/src/freedreno/ir3/ir3_sched.c @@ -992,7 +992,7 @@ split_pred(struct ir3_sched_ctx *ctx) /* original pred is scheduled, but new one isn't: */ new_pred->flags &= ~IR3_INSTR_MARK; } - predicated->srcs[0]->instr = new_pred; + predicated->srcs[0]->def->instr = new_pred; /* don't need to remove old dag edge since old pred is * already scheduled: */