lima/ppir: mark regalloc created ssa unspillable
authorErico Nunes <nunes.erico@gmail.com>
Mon, 26 Aug 2019 18:59:57 +0000 (20:59 +0200)
committerErico Nunes <nunes.erico@gmail.com>
Thu, 5 Sep 2019 23:29:24 +0000 (23:29 +0000)
One ssa created in the spillinc code in ppir_update_spilled_src was not
properly being marked 'spilled', which made it a candidate for future
spilling attempts.
Since it was being inserted by the spilling code itself, let's mark it
unspillable to avoid an infinite spilling loop.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
src/gallium/drivers/lima/ir/pp/regalloc.c

index dcefa1e6480ddbcb26370d8b84b23a146ecfbd0b..f6740c0ebb0558148980df95445dfe7a2de65512 100644 (file)
@@ -298,6 +298,7 @@ static ppir_alu_node* ppir_update_spilled_src(ppir_compiler *comp,
    alu_dest->ssa.num_components = 4;
    alu_dest->ssa.live_in = INT_MAX;
    alu_dest->ssa.live_out = 0;
+   alu_dest->ssa.spilled = true;
    alu_dest->write_mask = 0xf;
 
    list_addtail(&alu_dest->ssa.list, &comp->reg_list);