nir: Remove single-source phis before opt_if_loop_last_continue

We might have some single-source phis leftover after prior optimizations. We
want to get rid of them before merging the blocks.

Fixes: 5921a19d4b ("nir: add if opt opt_if_loop_last_continue()")

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6312

Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Reviewed-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16095>
This commit is contained in:
Yevhenii Kolesnikov
2022-04-21 21:20:13 +03:00
committed by Marge Bot
parent 90ea4283b4
commit 65caf46b3b

View File

@@ -818,6 +818,11 @@ opt_if_loop_last_continue(nir_loop *loop, bool aggressive_last_continue)
exec_list_is_empty(&last_block->instr_list))
return false;
/* If there are single-source phis in the last block,
* get rid of them first
*/
nir_opt_remove_phis_block(last_block);
/* Move the last block of the loop inside the last if-statement */
nir_cf_list tmp;
nir_cf_extract(&tmp, nir_after_cf_node(if_node),