Module: Mesa Branch: staging/22.2 Commit: 6a936dc090cf301fc79358d7dc2532048c13c224 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6a936dc090cf301fc79358d7dc2532048c13c224
Author: Chia-I Wu <[email protected]> Date: Tue Aug 16 15:10:23 2022 -0700 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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18096> (cherry picked from commit b1cb7643162758ba52ce3f09df69746d94d91245) --- .pick_status.json | 2 +- src/freedreno/ir3/ir3.h | 4 ++-- src/freedreno/ir3/ir3_sched.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 42d40f8bf8f..70efe24da1f 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -9751,7 +9751,7 @@ "description": "ir3: fix predicate splitting in scheduler", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/freedreno/ir3/ir3.h b/src/freedreno/ir3/ir3.h index c23d3afd896..222eb6184cf 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 91c43de2f6e..80de9f52491 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: */
