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:
           */

Reply via email to