aboutsummaryrefslogtreecommitdiffstats
path: root/src/panfrost
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-07-24 11:16:15 -0700
committerAlyssa Rosenzweig <[email protected]>2019-07-25 06:37:22 -0700
commit0f38f6466e8f1db31aec0bc60e12246a67f91d4d (patch)
tree93fb60201196b9b4e8e5a48086c7763a62784b30 /src/panfrost
parentdca0166ce1685511165b73ec0d5cc8d632adb355 (diff)
pan/midgard: Extend liveness analysis to st_vary
These can consume sources now. Signed-off-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/panfrost')
-rw-r--r--src/panfrost/midgard/midgard_ra.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/src/panfrost/midgard/midgard_ra.c b/src/panfrost/midgard/midgard_ra.c
index 5f12cb9fc07..2f4bdc65c35 100644
--- a/src/panfrost/midgard/midgard_ra.c
+++ b/src/panfrost/midgard/midgard_ra.c
@@ -372,20 +372,13 @@ allocate_registers(compiler_context *ctx, bool *spilled)
mir_foreach_instr_in_block(block, ins) {
if (ins->compact_branch) continue;
- /* Dest is < 0 for st_vary instructions, which break
- * the usual SSA conventions. Liveness analysis doesn't
- * make sense on these instructions, so skip them to
- * avoid memory corruption */
-
- if (ins->ssa_args.dest < 0) continue;
-
if (ins->ssa_args.dest < SSA_FIXED_MINIMUM) {
/* If this destination is not yet live, it is
* now since we just wrote it */
int dest = ins->ssa_args.dest;
- if (live_start[dest] == -1)
+ if (dest >= 0 && live_start[dest] == -1)
live_start[dest] = d;
}