From 28d2a27030627baeab460f12b63fe79c32e564b7 Mon Sep 17 00:00:00 2001 From: Job Noorman Date: Thu, 15 Aug 2024 08:46:35 +0200 Subject: [PATCH] ir3: fix clearing merge sets after shared RA After spilling during regular RA, merge sets need to be fixed up. To find all merge sets, fixup_merge_sets used ra_foreach_dst. However, after shared RA has run, shared dsts wouldn't have the IR3_REG_SSA flag set anymore leaving their merge sets lingering. This patch fixes this by using foreach_dst instead. Fixes: fa22b0901af ("ir3/ra: Add specialized shared register RA/spilling") Signed-off-by: Job Noorman Part-of: --- src/freedreno/ir3/ir3_spill.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/freedreno/ir3/ir3_spill.c b/src/freedreno/ir3/ir3_spill.c index 34360abfe3f..2fe48008318 100644 --- a/src/freedreno/ir3/ir3_spill.c +++ b/src/freedreno/ir3/ir3_spill.c @@ -2097,7 +2097,7 @@ fixup_merge_sets(struct ir3_liveness *live, struct ir3 *ir) { foreach_block (block, &ir->block_list) { foreach_instr (instr, &block->instr_list) { - ra_foreach_dst (dst, instr) { + foreach_dst (dst, instr) { dst->merge_set = NULL; dst->merge_set_offset = 0; }