From d9ad6f54dcf6c4deb43055e45f1636e74c176ce3 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 4 Sep 2019 11:28:26 -0700 Subject: [PATCH] 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 Reviewed-by: Eric Anholt --- 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;