summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2019-09-04 11:28:26 -0700
committerRob Clark <[email protected]>2019-09-06 00:13:44 +0000
commitd9ad6f54dcf6c4deb43055e45f1636e74c176ce3 (patch)
tree1aa2ef37835d66bf7029bc60fdc54cf9c1702523
parente59bfc820bdf8531c941150de2ea56fb83b6b28f (diff)
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 <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
-rw-r--r--src/freedreno/ir3/ir3_cp.c2
1 files changed, 1 insertions, 1 deletions
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;