summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2018-01-29 15:58:49 -0500
committerRob Clark <[email protected]>2018-02-10 14:54:58 -0500
commit8ea1ef41911490c696a7e230511c99f0c9fac060 (patch)
tree66caed466cf2d9a10e27530edde8681e37a8d678 /src
parentc60f150d5613ccfb8146021455500a9ac9c17b89 (diff)
freedreno/ir3: keep array stores
Since these are not in SSA form, add to block's keeps so it doesn't appear unused. Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c b/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
index 23888770fbe..c043214fca5 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
@@ -374,6 +374,12 @@ create_array_store(struct ir3_context *ctx, struct ir3_array *arr, int n,
arr->last_write = mov;
+ /* the array store may only matter to something in an earlier
+ * block (ie. loops), but since arrays are not in SSA, depth
+ * pass won't know this.. so keep all array stores:
+ */
+ array_insert(block, block->keeps, mov);
+
return mov;
}