Module: Mesa Branch: master Commit: 0206fb39418786e069088c513bf392d564d3d0f9 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0206fb39418786e069088c513bf392d564d3d0f9
Author: Jason Ekstrand <[email protected]> Date: Tue Sep 22 16:56:42 2020 -0500 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 <[email protected]> Reviewed-by: Yevhenii Kharchenko <[email protected]> Reviewed-by: Connor Abbott <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6824> --- 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 d8f33c2d0ea..9b9df10e66d 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; } _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
