nir/nir: Use safe iterators when iterating over the CFG
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
This commit is contained in:
@@ -1738,22 +1738,24 @@ static inline bool
|
|||||||
foreach_if(nir_if *if_stmt, nir_foreach_block_cb cb, bool reverse, void *state)
|
foreach_if(nir_if *if_stmt, nir_foreach_block_cb cb, bool reverse, void *state)
|
||||||
{
|
{
|
||||||
if (reverse) {
|
if (reverse) {
|
||||||
foreach_list_typed_reverse(nir_cf_node, node, node, &if_stmt->else_list) {
|
foreach_list_typed_safe_reverse(nir_cf_node, node, node,
|
||||||
|
&if_stmt->else_list) {
|
||||||
if (!foreach_cf_node(node, cb, reverse, state))
|
if (!foreach_cf_node(node, cb, reverse, state))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach_list_typed_reverse(nir_cf_node, node, node, &if_stmt->then_list) {
|
foreach_list_typed_safe_reverse(nir_cf_node, node, node,
|
||||||
|
&if_stmt->then_list) {
|
||||||
if (!foreach_cf_node(node, cb, reverse, state))
|
if (!foreach_cf_node(node, cb, reverse, state))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
foreach_list_typed(nir_cf_node, node, node, &if_stmt->then_list) {
|
foreach_list_typed_safe(nir_cf_node, node, node, &if_stmt->then_list) {
|
||||||
if (!foreach_cf_node(node, cb, reverse, state))
|
if (!foreach_cf_node(node, cb, reverse, state))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach_list_typed(nir_cf_node, node, node, &if_stmt->else_list) {
|
foreach_list_typed_safe(nir_cf_node, node, node, &if_stmt->else_list) {
|
||||||
if (!foreach_cf_node(node, cb, reverse, state))
|
if (!foreach_cf_node(node, cb, reverse, state))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1766,12 +1768,12 @@ static inline bool
|
|||||||
foreach_loop(nir_loop *loop, nir_foreach_block_cb cb, bool reverse, void *state)
|
foreach_loop(nir_loop *loop, nir_foreach_block_cb cb, bool reverse, void *state)
|
||||||
{
|
{
|
||||||
if (reverse) {
|
if (reverse) {
|
||||||
foreach_list_typed_reverse(nir_cf_node, node, node, &loop->body) {
|
foreach_list_typed_safe_reverse(nir_cf_node, node, node, &loop->body) {
|
||||||
if (!foreach_cf_node(node, cb, reverse, state))
|
if (!foreach_cf_node(node, cb, reverse, state))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
foreach_list_typed(nir_cf_node, node, node, &loop->body) {
|
foreach_list_typed_safe(nir_cf_node, node, node, &loop->body) {
|
||||||
if (!foreach_cf_node(node, cb, reverse, state))
|
if (!foreach_cf_node(node, cb, reverse, state))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1804,7 +1806,7 @@ foreach_cf_node(nir_cf_node *node, nir_foreach_block_cb cb,
|
|||||||
bool
|
bool
|
||||||
nir_foreach_block(nir_function_impl *impl, nir_foreach_block_cb cb, void *state)
|
nir_foreach_block(nir_function_impl *impl, nir_foreach_block_cb cb, void *state)
|
||||||
{
|
{
|
||||||
foreach_list_typed(nir_cf_node, node, node, &impl->body) {
|
foreach_list_typed_safe(nir_cf_node, node, node, &impl->body) {
|
||||||
if (!foreach_cf_node(node, cb, false, state))
|
if (!foreach_cf_node(node, cb, false, state))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1819,7 +1821,7 @@ nir_foreach_block_reverse(nir_function_impl *impl, nir_foreach_block_cb cb,
|
|||||||
if (!cb(impl->end_block, state))
|
if (!cb(impl->end_block, state))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
foreach_list_typed_reverse(nir_cf_node, node, node, &impl->body) {
|
foreach_list_typed_safe_reverse(nir_cf_node, node, node, &impl->body) {
|
||||||
if (!foreach_cf_node(node, cb, true, state))
|
if (!foreach_cf_node(node, cb, true, state))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user