From: Rob Clark <robcl...@freedesktop.org> Add it to the private interface, since we'll need it for nir_clone().
Signed-off-by: Rob Clark <robcl...@freedesktop.org> --- src/glsl/nir/nir.c | 13 +++++++++++-- src/glsl/nir/nir.h | 2 ++ src/glsl/nir/nir_control_flow.c | 6 +++--- src/glsl/nir/nir_control_flow_private.h | 1 + 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/glsl/nir/nir.c b/src/glsl/nir/nir.c index 300e43f..0cbe4e1 100644 --- a/src/glsl/nir/nir.c +++ b/src/glsl/nir/nir.c @@ -728,11 +728,20 @@ add_reg_def_cb(nir_dest *dest, void *state) return true; } -static void -add_defs_uses(nir_instr *instr) +/* TODO better name.. for nir_clone we want to do add_use_cb and + * add_reg_def_cb (as part of the 2nd pass), but not add_ssa_def_cb. + */ +void +nir_add_defs_uses(nir_instr *instr) { nir_foreach_src(instr, add_use_cb, instr); nir_foreach_dest(instr, add_reg_def_cb, instr); +} + +static void +add_defs_uses(nir_instr *instr) +{ + nir_add_defs_uses(instr); nir_foreach_ssa_def(instr, add_ssa_def_cb, instr); } diff --git a/src/glsl/nir/nir.h b/src/glsl/nir/nir.h index 097d65b..a09c2a6 100644 --- a/src/glsl/nir/nir.h +++ b/src/glsl/nir/nir.h @@ -1771,6 +1771,8 @@ nir_after_cf_list(struct exec_list *cf_list) return nir_after_cf_node(last_node); } +void nir_add_defs_uses(nir_instr *instr); + /** * Insert a NIR instruction at the given cursor. * diff --git a/src/glsl/nir/nir_control_flow.c b/src/glsl/nir/nir_control_flow.c index 7f51c4f..2c2ef7c 100644 --- a/src/glsl/nir/nir_control_flow.c +++ b/src/glsl/nir/nir_control_flow.c @@ -599,8 +599,8 @@ nir_handle_remove_jump(nir_block *block, nir_jump_type type) nir_metadata_preserve(impl, nir_metadata_none); } -static void -update_if_uses(nir_cf_node *node) +void +nir_update_if_uses(nir_cf_node *node) { if (node->type != nir_cf_node_if) return; @@ -673,7 +673,7 @@ nir_cf_node_insert(nir_cursor cursor, nir_cf_node *node) stitch_blocks(block, after); stitch_blocks(before, block); } else { - update_if_uses(node); + nir_update_if_uses(node); insert_non_block(before, node, after); } } diff --git a/src/glsl/nir/nir_control_flow_private.h b/src/glsl/nir/nir_control_flow_private.h index f32b57a..c03c9ca 100644 --- a/src/glsl/nir/nir_control_flow_private.h +++ b/src/glsl/nir/nir_control_flow_private.h @@ -35,3 +35,4 @@ void nir_handle_add_jump(nir_block *block); void nir_handle_remove_jump(nir_block *block, nir_jump_type type); +void nir_update_if_uses(nir_cf_node *node); -- 2.5.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev