diff --git a/.pick_status.json b/.pick_status.json index 9d42966346e..87f333e5623 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -174,7 +174,7 @@ "description": "ir3: make indexing instructions optional in ir3_merge_regs", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "613eaac7b53bfbfcd6ef536412be6c9c63cdea4f", "notes": null diff --git a/src/freedreno/ir3/ir3_merge_regs.c b/src/freedreno/ir3/ir3_merge_regs.c index 29e0aea6263..e186a0dd70b 100644 --- a/src/freedreno/ir3/ir3_merge_regs.c +++ b/src/freedreno/ir3/ir3_merge_regs.c @@ -560,8 +560,6 @@ dump_merge_sets(struct ir3 *ir) void ir3_merge_regs(struct ir3_liveness *live, struct ir3 *ir) { - ir3_index_instrs_for_merge_sets(ir); - /* First pass: coalesce phis, which must be together. */ foreach_block (block, &ir->block_list) { foreach_instr (instr, &block->instr_list) { diff --git a/src/freedreno/ir3/ir3_ra.c b/src/freedreno/ir3/ir3_ra.c index 58452070edf..f44a6b8c086 100644 --- a/src/freedreno/ir3/ir3_ra.c +++ b/src/freedreno/ir3/ir3_ra.c @@ -2561,6 +2561,7 @@ ir3_ra(struct ir3_shader_variant *v) ir3_debug_print(v->ir, "AFTER: create_parallel_copies"); + ir3_index_instrs_for_merge_sets(v->ir); ir3_merge_regs(live, v->ir); bool has_shared_vectors = false; diff --git a/src/freedreno/ir3/ir3_spill.c b/src/freedreno/ir3/ir3_spill.c index 6d9aac25eac..9f425849885 100644 --- a/src/freedreno/ir3/ir3_spill.c +++ b/src/freedreno/ir3/ir3_spill.c @@ -2103,6 +2103,7 @@ fixup_merge_sets(struct ir3_liveness *live, struct ir3 *ir) } } + ir3_index_instrs_for_merge_sets(ir); ir3_merge_regs(live, ir); }