nir/liveness: Consider if uses in nir_ssa_defs_interfere

Fixes: f86902e75d "nir: Add an SSA-based liveness analysis pass"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3428
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Yevhenii Kharchenko <yevhenii.kharchenko@globallogic.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6824>
This commit is contained in:
Jason Ekstrand
2020-09-22 16:56:42 -05:00
committed by Marge Bot
parent dcba32bac0
commit 0206fb3941

View File

@@ -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;
}