nir/opt_cp: fixup for new foreach_block()

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Connor Abbott
2016-04-12 14:55:19 -04:00
committed by Jason Ekstrand
parent 8dd7d78925
commit 1ba40d834b

View File

@@ -240,29 +240,21 @@ copy_prop_if(nir_if *if_stmt)
return copy_prop_src(&if_stmt->condition, NULL, if_stmt); return copy_prop_src(&if_stmt->condition, NULL, if_stmt);
} }
static bool
copy_prop_block(nir_block *block, void *_state)
{
bool *progress = (bool *) _state;
nir_foreach_instr(block, instr) {
if (copy_prop_instr(instr))
*progress = true;
}
nir_if *if_stmt = nir_block_get_following_if(block);
if (if_stmt && copy_prop_if(if_stmt))
*progress = true;
return true;
}
static bool static bool
nir_copy_prop_impl(nir_function_impl *impl) nir_copy_prop_impl(nir_function_impl *impl)
{ {
bool progress = false; bool progress = false;
nir_foreach_block_call(impl, copy_prop_block, &progress); nir_foreach_block(block, impl) {
nir_foreach_instr(block, instr) {
if (copy_prop_instr(instr))
progress = true;
}
nir_if *if_stmt = nir_block_get_following_if(block);
if (if_stmt && copy_prop_if(if_stmt))
progress = true;
}
if (progress) { if (progress) {
nir_metadata_preserve(impl, nir_metadata_block_index | nir_metadata_preserve(impl, nir_metadata_block_index |