From 0206fb39418786e069088c513bf392d564d3d0f9 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Tue, 22 Sep 2020 16:56:42 -0500 Subject: [PATCH] nir/liveness: Consider if uses in nir_ssa_defs_interfere Fixes: f86902e75d9 "nir: Add an SSA-based liveness analysis pass" Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3428 Reviewed-by: Eric Anholt Reviewed-by: Yevhenii Kharchenko Reviewed-by: Connor Abbott Part-of: --- src/compiler/nir/nir_liveness.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/compiler/nir/nir_liveness.c b/src/compiler/nir/nir_liveness.c index d8f33c2..9b9df10 100644 --- a/src/compiler/nir/nir_liveness.c +++ b/src/compiler/nir/nir_liveness.c @@ -250,6 +250,15 @@ search_for_use_after_instr(nir_instr *start, nir_ssa_def *def) return true; node = node->next; } + + /* If uses are considered to be in the block immediately preceding the if + * so we need to also check the following if condition, if any. + */ + nir_if *following_if = nir_block_get_following_if(start->block); + if (following_if && following_if->condition.is_ssa && + following_if->condition.ssa == def) + return true; + return false; } -- 2.7.4