diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-07-24 11:16:15 -0700 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-07-25 06:37:22 -0700 |
commit | 0f38f6466e8f1db31aec0bc60e12246a67f91d4d (patch) | |
tree | 93fb60201196b9b4e8e5a48086c7763a62784b30 /src/panfrost | |
parent | dca0166ce1685511165b73ec0d5cc8d632adb355 (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.c | 9 |
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; } |