pan/midgard: Remove mir_has_multiple_writes
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Thu, 3 Oct 2019 20:01:51 +0000 (16:01 -0400)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 4 Oct 2019 02:29:50 +0000 (22:29 -0400)
We already enforce this with the SSA/register distinction in the
backend. There is no need to duplicate this logic merely for an assert.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
src/panfrost/midgard/compiler.h
src/panfrost/midgard/midgard_compile.c
src/panfrost/midgard/midgard_liveness.c

index b0b5ba0714388e8bc236815f53369928bbf9ddae..a338557a7a0ac7ef2adef0a3fdaac7493e06f0a1 100644 (file)
@@ -604,7 +604,6 @@ void mir_lower_special_reads(compiler_context *ctx);
 struct ra_graph* allocate_registers(compiler_context *ctx, bool *spilled);
 void install_registers(compiler_context *ctx, struct ra_graph *g);
 bool mir_is_live_after(compiler_context *ctx, midgard_block *block, midgard_instruction *start, int src);
-bool mir_has_multiple_writes(compiler_context *ctx, int src);
 
 void mir_create_pipeline_registers(compiler_context *ctx);
 
index 857e6c701128b6d5548d058c6426f5b5a85a39a0..3719ac869b4ef49a26b334af2755ae69a45bda33 100644 (file)
@@ -2146,7 +2146,6 @@ midgard_opt_pos_propagate(compiler_context *ctx, midgard_block *block)
                 /* TODO: Registers? */
                 unsigned src = ins->src[1];
                 if (src & IS_REG) continue;
-                assert(!mir_has_multiple_writes(ctx, src));
 
                 /* There might be a source modifier, too */
                 if (mir_nontrivial_source2_mod(ins)) continue;
index 155e1cc3514c54985244bd11ccb4b9d333e2de21..4766603a885a4841f43cb85fe648608869928c98 100644 (file)
@@ -90,19 +90,3 @@ mir_is_live_after(compiler_context *ctx, midgard_block *block, midgard_instructi
 
         return succ;
 }
-
-/* Just a quick check -- is it written more than once? (I.e. are we definitely
- * not SSA?) */
-
-bool
-mir_has_multiple_writes(compiler_context *ctx, int dest)
-{
-        unsigned write_count = 0;
-
-        mir_foreach_instr_global(ctx, ins) {
-                if (ins->dest == dest)
-                        write_count++;
-        }
-
-        return write_count > 1;
-}