Mesa (master): freedreno/ir3: fix cp cmps.s opt

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Sep 6 00:43:08 UTC 2019


Module: Mesa
Branch: master
Commit: d9ad6f54dcf6c4deb43055e45f1636e74c176ce3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d9ad6f54dcf6c4deb43055e45f1636e74c176ce3

Author: Rob Clark <robdclark at chromium.org>
Date:   Wed Sep  4 11:28:26 2019 -0700

freedreno/ir3: fix cp cmps.s opt

Need to use ir3_instr_set_address(), otherwise the instruction might not
get added to the indirects table.  This becomes a problem when we turn
on copy propagation for relative accesses, as check_instr() in the sched
pass won't realize there is an indirect consumer of address register
load that is ready to be scheduled.

Signed-off-by: Rob Clark <robdclark at chromium.org>
Reviewed-by: Eric Anholt <eric at anholt.net>

---

 src/freedreno/ir3/ir3_cp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/freedreno/ir3/ir3_cp.c b/src/freedreno/ir3/ir3_cp.c
index 3039e50c3e4..f0fe8362be0 100644
--- a/src/freedreno/ir3/ir3_cp.c
+++ b/src/freedreno/ir3/ir3_cp.c
@@ -643,7 +643,7 @@ instr_cp(struct ir3_cp_ctx *ctx, struct ir3_instruction *instr)
 			instr->opc   = cond->opc;
 			instr->flags = cond->flags;
 			instr->cat2  = cond->cat2;
-			instr->address = cond->address;
+			ir3_instr_set_address(instr, cond->address);
 			instr->regs[1] = cond->regs[1];
 			instr->regs[2] = cond->regs[2];
 			instr->barrier_class |= cond->barrier_class;




More information about the mesa-commit mailing list