From 8ea1ef41911490c696a7e230511c99f0c9fac060 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Mon, 29 Jan 2018 15:58:49 -0500 Subject: [PATCH] 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 --- src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c | 6 ++++++ 1 file changed, 6 insertions(+) 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; } -- 2.30.2