nir: make cleanup_cf_node() not use remove_defs_uses()

cleanup_cf_node() is part of the control flow modification code, which
we're going to split into its own file, but remove_defs_uses() is an
internal function used by nir_instr_remove(). Break the dependency by
making cleanup_cf_node() use nir_instr_remove() instead, which simply
calls remove_defs_uses() and then removes the instruction from the list.
nir_instr_remove() does do extra things for jumps, though, so we avoid
calling it on jumps which matches the previous behavior (this will be
fixed later in the series).

Signed-off-by: Connor Abbott <connor.w.abbott@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Connor Abbott 2015-07-21 19:54:17 -07:00 committed by Kenneth Graunke
parent 9d5944053c
commit 1c53f89696

View file

@ -1212,8 +1212,10 @@ cleanup_cf_node(nir_cf_node *node)
case nir_cf_node_block: {
nir_block *block = nir_cf_node_as_block(node);
/* We need to walk the instructions and clean up defs/uses */
nir_foreach_instr(block, instr)
remove_defs_uses(instr);
nir_foreach_instr(block, instr) {
if (instr->type != nir_instr_type_jump)
nir_instr_remove(instr);
}
break;
}