nir: add nir_block_get_following_loop() helper
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
committed by
Kenneth Graunke
parent
f649afc9dd
commit
89dc0626bd
@@ -1335,6 +1335,22 @@ nir_block_get_following_if(nir_block *block)
|
||||
return nir_cf_node_as_if(next_node);
|
||||
}
|
||||
|
||||
nir_loop *
|
||||
nir_block_get_following_loop(nir_block *block)
|
||||
{
|
||||
if (exec_node_is_tail_sentinel(&block->cf_node.node))
|
||||
return NULL;
|
||||
|
||||
if (nir_cf_node_is_last(&block->cf_node))
|
||||
return NULL;
|
||||
|
||||
nir_cf_node *next_node = nir_cf_node_next(&block->cf_node);
|
||||
|
||||
if (next_node->type != nir_cf_node_loop)
|
||||
return NULL;
|
||||
|
||||
return nir_cf_node_as_loop(next_node);
|
||||
}
|
||||
static bool
|
||||
index_block(nir_block *block, void *state)
|
||||
{
|
||||
|
||||
@@ -1732,6 +1732,8 @@ bool nir_foreach_block_reverse(nir_function_impl *impl, nir_foreach_block_cb cb,
|
||||
*/
|
||||
nir_if *nir_block_get_following_if(nir_block *block);
|
||||
|
||||
nir_loop *nir_block_get_following_loop(nir_block *block);
|
||||
|
||||
void nir_index_local_regs(nir_function_impl *impl);
|
||||
void nir_index_global_regs(nir_shader *shader);
|
||||
void nir_index_ssa_defs(nir_function_impl *impl);
|
||||
|
||||
Reference in New Issue
Block a user