nir: Add and use a new nir_ssa_def_rewrite_uses_src helper
This is currently an alias for nir_ssa_def_rewrite_uses but we move all the instances which used it to write a non-SSA source to the newly named helper. Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Acked-by: Alyssa Rosenzweig <alyssa@collabora.com> Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9383>
This commit is contained in:

committed by
Marge Bot

parent
98a5b9b454
commit
13a0ee8a51
@@ -1364,6 +1364,12 @@ nir_ssa_def_rewrite_uses_ssa(nir_ssa_def *def, nir_ssa_def *new_ssa)
|
||||
|
||||
void
|
||||
nir_ssa_def_rewrite_uses(nir_ssa_def *def, nir_src new_src)
|
||||
{
|
||||
nir_ssa_def_rewrite_uses_src(def, new_src);
|
||||
}
|
||||
|
||||
void
|
||||
nir_ssa_def_rewrite_uses_src(nir_ssa_def *def, nir_src new_src)
|
||||
{
|
||||
if (new_src.is_ssa) {
|
||||
nir_ssa_def_rewrite_uses_ssa(def, new_src.ssa);
|
||||
|
@@ -3947,6 +3947,7 @@ nir_ssa_dest_init_for_type(nir_instr *instr, nir_dest *dest,
|
||||
}
|
||||
void nir_ssa_def_rewrite_uses(nir_ssa_def *def, nir_src new_src);
|
||||
void nir_ssa_def_rewrite_uses_ssa(nir_ssa_def *def, nir_ssa_def *new_ssa);
|
||||
void nir_ssa_def_rewrite_uses_src(nir_ssa_def *def, nir_src new_src);
|
||||
void nir_ssa_def_rewrite_uses_after(nir_ssa_def *def, nir_src new_src,
|
||||
nir_instr *after_me);
|
||||
|
||||
|
@@ -547,7 +547,7 @@ rewrite_ssa_def(nir_ssa_def *def, void *void_state)
|
||||
reg = create_reg_for_ssa_def(def, state->builder.impl);
|
||||
}
|
||||
|
||||
nir_ssa_def_rewrite_uses(def, nir_src_for_reg(reg));
|
||||
nir_ssa_def_rewrite_uses_src(def, nir_src_for_reg(reg));
|
||||
assert(nir_ssa_def_is_unused(def));
|
||||
|
||||
if (def->parent_instr->type == nir_instr_type_ssa_undef) {
|
||||
@@ -1000,7 +1000,7 @@ dest_replace_ssa_with_reg(nir_dest *dest, void *void_state)
|
||||
|
||||
nir_register *reg = create_reg_for_ssa_def(&dest->ssa, state->impl);
|
||||
|
||||
nir_ssa_def_rewrite_uses(&dest->ssa, nir_src_for_reg(reg));
|
||||
nir_ssa_def_rewrite_uses_src(&dest->ssa, nir_src_for_reg(reg));
|
||||
|
||||
nir_instr *instr = dest->ssa.parent_instr;
|
||||
*dest = nir_dest_for_reg(reg);
|
||||
@@ -1052,12 +1052,12 @@ nir_lower_ssa_defs_to_regs_block(nir_block *block)
|
||||
/* Undefs are just a read of something never written. */
|
||||
nir_ssa_undef_instr *undef = nir_instr_as_ssa_undef(instr);
|
||||
nir_register *reg = create_reg_for_ssa_def(&undef->def, state.impl);
|
||||
nir_ssa_def_rewrite_uses(&undef->def, nir_src_for_reg(reg));
|
||||
nir_ssa_def_rewrite_uses_src(&undef->def, nir_src_for_reg(reg));
|
||||
} else if (instr->type == nir_instr_type_load_const) {
|
||||
/* Constant loads are SSA-only, we need to insert a move */
|
||||
nir_load_const_instr *load = nir_instr_as_load_const(instr);
|
||||
nir_register *reg = create_reg_for_ssa_def(&load->def, state.impl);
|
||||
nir_ssa_def_rewrite_uses(&load->def, nir_src_for_reg(reg));
|
||||
nir_ssa_def_rewrite_uses_src(&load->def, nir_src_for_reg(reg));
|
||||
|
||||
nir_alu_instr *mov = nir_alu_instr_create(shader, nir_op_mov);
|
||||
mov->src[0].src = nir_src_for_ssa(&load->def);
|
||||
|
@@ -257,7 +257,7 @@ nir_lower_vec_to_movs_instr(nir_builder *b, nir_instr *instr, void *data)
|
||||
reg->num_components = vec->dest.dest.ssa.num_components;
|
||||
reg->bit_size = vec->dest.dest.ssa.bit_size;
|
||||
|
||||
nir_ssa_def_rewrite_uses(&vec->dest.dest.ssa, nir_src_for_reg(reg));
|
||||
nir_ssa_def_rewrite_uses_src(&vec->dest.dest.ssa, nir_src_for_reg(reg));
|
||||
|
||||
nir_instr_rewrite_dest(&vec->instr, &vec->dest.dest,
|
||||
nir_dest_for_reg(reg));
|
||||
|
@@ -245,7 +245,7 @@ lower_load_vulkan_descriptor(nir_intrinsic_instr *intrin)
|
||||
/* Loading the descriptor happens as part of the load/store instruction so
|
||||
* this is a no-op.
|
||||
*/
|
||||
nir_ssa_def_rewrite_uses(&intrin->dest.ssa, intrin->src[0]);
|
||||
nir_ssa_def_rewrite_uses_src(&intrin->dest.ssa, intrin->src[0]);
|
||||
nir_instr_remove(&intrin->instr);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user