ir3: fix predicate splitting in scheduler
authorChia-I Wu <olvaffe@gmail.com>
Tue, 16 Aug 2022 22:10:23 +0000 (15:10 -0700)
committerMarge Bot <emma+marge@anholt.net>
Fri, 26 Aug 2022 17:36:18 +0000 (17:36 +0000)
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>

src/freedreno/ir3/ir3.h
src/freedreno/ir3/ir3_sched.c

index c23d3af..222eb61 100644 (file)
@@ -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;
 
index 91c43de..80de9f5 100644 (file)
@@ -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:
           */