mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
lima/ppir: branch regalloc fixes
The branch instruction has sources which must be handled in src handling paths so that regalloc assigns registers to them properly. Signed-off-by: Erico Nunes <nunes.erico@gmail.com> Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
This commit is contained in:
parent
32b72cbca5
commit
2292f0c4b5
1 changed files with 33 additions and 0 deletions
|
|
@ -239,6 +239,16 @@ static ppir_reg *ppir_regalloc_build_liveness_info(ppir_compiler *comp)
|
|||
reg->live_out = node->instr->seq;
|
||||
break;
|
||||
}
|
||||
case ppir_node_type_branch:
|
||||
{
|
||||
ppir_branch_node *branch = ppir_node_to_branch(node);
|
||||
for (int i = 0; i < 2; i++) {
|
||||
ppir_reg *reg = get_src_reg(branch->src + i);
|
||||
if (reg && node->instr->seq > reg->live_out)
|
||||
reg->live_out = node->instr->seq;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
@ -315,6 +325,17 @@ static void ppir_regalloc_print_result(ppir_compiler *comp)
|
|||
printf("%d", ppir_target_get_src_reg_index(&load_tex->src_coords));
|
||||
break;
|
||||
}
|
||||
case ppir_node_type_branch:
|
||||
{
|
||||
ppir_branch_node *branch = ppir_node_to_branch(node);
|
||||
for (int j = 0; j < 2; j++) {
|
||||
if (j)
|
||||
printf(" ");
|
||||
|
||||
printf("%d", ppir_target_get_src_reg_index(branch->src + j));
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
@ -610,6 +631,18 @@ static bool ppir_regalloc_spill_reg(ppir_compiler *comp, ppir_reg *chosen)
|
|||
}
|
||||
break;
|
||||
}
|
||||
case ppir_node_type_branch:
|
||||
{
|
||||
ppir_branch_node *branch = ppir_node_to_branch(node);
|
||||
for (int i = 0; i < 2; i++) {
|
||||
reg = get_src_reg(branch->src + i);
|
||||
if (reg == chosen) {
|
||||
ppir_update_spilled_src(comp, block, node,
|
||||
branch->src + i, NULL);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue