pan/bi: Recoalesce tied operands after spilling
Otherwise we can fail to allocate tied operands if we spill the tied operand.
Seen in shaders/android/com.miHoYo.GenshinImpact/16.shader_test with a
particularly bad scheduling causing excessive spilling.
No shader-db changes.
Fixes: bc17288697
("pan/bi: Lower split/collect before RA")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16378>
This commit is contained in:

committed by
Marge Bot

parent
e20718e8fa
commit
2fb5ceab7a
@@ -818,6 +818,11 @@ bi_register_allocate(bi_context *ctx)
|
||||
spill_count += bi_spill_register(ctx,
|
||||
bi_node_to_index(spill_node, bi_max_temp(ctx)),
|
||||
spill_count);
|
||||
|
||||
/* In case the spill affected an instruction with tied
|
||||
* operands, we need to fix up.
|
||||
*/
|
||||
bi_coalesce_tied(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user