Mesa (main): ir3/postsched: Support multi-mov instructions

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jun 29 08:25:32 UTC 2021


Module: Mesa
Branch: main
Commit: 3896de621e3fdb69e0e20921f6972f06c13e40fe
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3896de621e3fdb69e0e20921f6972f06c13e40fe

Author: Connor Abbott <cwabbott0 at gmail.com>
Date:   Thu Apr 22 19:11:05 2021 +0200

ir3/postsched: Support multi-mov instructions

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>

---

 src/freedreno/ir3/ir3_postsched.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/freedreno/ir3/ir3_postsched.c b/src/freedreno/ir3/ir3_postsched.c
index a764acb7ebb..50c223b35cb 100644
--- a/src/freedreno/ir3/ir3_postsched.c
+++ b/src/freedreno/ir3/ir3_postsched.c
@@ -460,22 +460,22 @@ calculate_deps(struct ir3_postsched_deps_state *state,
 		}
 	}
 
-	if (dest_regs(node->instr) == 0)
-		return;
-
 	/* And then after we update the state for what this instruction
 	 * wrote:
 	 */
-	struct ir3_register *reg = node->instr->dsts[0];
-	if (reg->flags & IR3_REG_RELATIV) {
-		/* mark the entire array as written: */
-		for (unsigned i = 0; i < reg->size; i++) {
-			add_reg_dep(state, node, reg, reg->array.base + i, -1);
-		}
-	} else {
-		assert(reg->wrmask >= 1);
-		u_foreach_bit (b, reg->wrmask) {
-			add_reg_dep(state, node, reg, reg->num + b, -1);
+	foreach_dst (reg, node->instr) {
+		if (reg->wrmask == 0)
+			continue;
+		if (reg->flags & IR3_REG_RELATIV) {
+			/* mark the entire array as written: */
+			for (unsigned i = 0; i < reg->size; i++) {
+				add_reg_dep(state, node, reg, reg->array.base + i, -1);
+			}
+		} else {
+			assert(reg->wrmask >= 1);
+			u_foreach_bit (b, reg->wrmask) {
+				add_reg_dep(state, node, reg, reg->num + b, -1);
+			}
 		}
 	}
 }



More information about the mesa-commit mailing list