From: Alyssa Rosenzweig Date: Wed, 22 May 2019 02:41:51 +0000 (+0000) Subject: panfrost/midgard: Fix liveness analysis bugs X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=550be763fa0aa9e5a060866963bae216cb1b9db3;p=mesa.git panfrost/midgard: Fix liveness analysis bugs This fixes liveness analysis with respect to inline constants and branching. in practice, the symptom is abnormally high register pressure. Signed-off-by: Alyssa Rosenzweig Reviewed-by: Ryan Houdek --- diff --git a/src/gallium/drivers/panfrost/midgard/midgard_liveness.c b/src/gallium/drivers/panfrost/midgard/midgard_liveness.c index ab36583ef39..e4c89556162 100644 --- a/src/gallium/drivers/panfrost/midgard/midgard_liveness.c +++ b/src/gallium/drivers/panfrost/midgard/midgard_liveness.c @@ -31,8 +31,14 @@ static bool midgard_is_live_in_instr(midgard_instruction *ins, int src) { - if (ins->ssa_args.src0 == src) return true; - if (ins->ssa_args.src1 == src) return true; + if (ins->compact_branch) + return false; + + if (ins->ssa_args.src0 == src) + return true; + + if (!ins->ssa_args.inline_constant && ins->ssa_args.src1 == src) + return true; return false; }