Mesa (master): panfrost/midgard: Fix liveness analysis bugs
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jun 4 20:23:19 UTC 2019
Module: Mesa
Branch: master
Commit: 550be763fa0aa9e5a060866963bae216cb1b9db3
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=550be763fa0aa9e5a060866963bae216cb1b9db3
Author: Alyssa Rosenzweig <alyssa at rosenzweig.io>
Date: Wed May 22 02:41:51 2019 +0000
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 <alyssa.rosenzweig at collabora.com>
Reviewed-by: Ryan Houdek <Sonicadvance1 at gmail.com>
---
src/gallium/drivers/panfrost/midgard/midgard_liveness.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
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;
}
More information about the mesa-commit
mailing list