ir3: remove spilled splits in shared RA

They get replaced by a newly created split and leaving the original one
around runs into validation errors.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29719>
This commit is contained in:
Job Noorman 2024-06-13 16:40:15 +02:00 committed by Marge Bot
parent 07eb970d67
commit a4ec62b497

View file

@ -961,6 +961,7 @@ handle_split(struct ra_ctx *ctx, struct ir3_instruction *split)
spill_split->split.off = split->split.off;
ir3_instr_move_after(spill_split, split);
dst_interval->spill_def = dst;
list_del(&split->node);
return;
}
@ -1192,7 +1193,7 @@ handle_block(struct ra_ctx *ctx, struct ir3_block *block)
if (block->predecessors_count > 1)
record_pred_live_outs(ctx, block);
foreach_instr (instr, &block->instr_list) {
foreach_instr_safe (instr, &block->instr_list) {
di(instr, "processing");
handle_instr(ctx, instr);