nir: add bit_size info to nir_ssa_undef_instr_create()
v2: - Make the users to give the right bit_sizes as arguments (Jason). Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
@@ -735,7 +735,7 @@ nir_visitor::visit(ir_call *ir)
|
|||||||
case nir_intrinsic_image_samples:
|
case nir_intrinsic_image_samples:
|
||||||
case nir_intrinsic_image_size: {
|
case nir_intrinsic_image_size: {
|
||||||
nir_ssa_undef_instr *instr_undef =
|
nir_ssa_undef_instr *instr_undef =
|
||||||
nir_ssa_undef_instr_create(shader, 1);
|
nir_ssa_undef_instr_create(shader, 1, 32);
|
||||||
nir_builder_instr_insert(&b, &instr_undef->instr);
|
nir_builder_instr_insert(&b, &instr_undef->instr);
|
||||||
|
|
||||||
/* Set the image variable dereference. */
|
/* Set the image variable dereference. */
|
||||||
|
@@ -558,12 +558,14 @@ nir_parallel_copy_instr_create(nir_shader *shader)
|
|||||||
}
|
}
|
||||||
|
|
||||||
nir_ssa_undef_instr *
|
nir_ssa_undef_instr *
|
||||||
nir_ssa_undef_instr_create(nir_shader *shader, unsigned num_components)
|
nir_ssa_undef_instr_create(nir_shader *shader,
|
||||||
|
unsigned num_components,
|
||||||
|
unsigned bit_size)
|
||||||
{
|
{
|
||||||
nir_ssa_undef_instr *instr = ralloc(shader, nir_ssa_undef_instr);
|
nir_ssa_undef_instr *instr = ralloc(shader, nir_ssa_undef_instr);
|
||||||
instr_init(&instr->instr, nir_instr_type_ssa_undef);
|
instr_init(&instr->instr, nir_instr_type_ssa_undef);
|
||||||
|
|
||||||
nir_ssa_def_init(&instr->instr, &instr->def, num_components, 32, NULL);
|
nir_ssa_def_init(&instr->instr, &instr->def, num_components, bit_size, NULL);
|
||||||
|
|
||||||
return instr;
|
return instr;
|
||||||
}
|
}
|
||||||
|
@@ -1845,7 +1845,8 @@ nir_phi_instr *nir_phi_instr_create(nir_shader *shader);
|
|||||||
nir_parallel_copy_instr *nir_parallel_copy_instr_create(nir_shader *shader);
|
nir_parallel_copy_instr *nir_parallel_copy_instr_create(nir_shader *shader);
|
||||||
|
|
||||||
nir_ssa_undef_instr *nir_ssa_undef_instr_create(nir_shader *shader,
|
nir_ssa_undef_instr *nir_ssa_undef_instr_create(nir_shader *shader,
|
||||||
unsigned num_components);
|
unsigned num_components,
|
||||||
|
unsigned bit_size);
|
||||||
|
|
||||||
nir_deref_var *nir_deref_var_create(void *mem_ctx, nir_variable *var);
|
nir_deref_var *nir_deref_var_create(void *mem_ctx, nir_variable *var);
|
||||||
nir_deref_array *nir_deref_array_create(void *mem_ctx);
|
nir_deref_array *nir_deref_array_create(void *mem_ctx);
|
||||||
|
@@ -78,7 +78,7 @@ static inline nir_ssa_def *
|
|||||||
nir_ssa_undef(nir_builder *build, unsigned num_components, unsigned bit_size)
|
nir_ssa_undef(nir_builder *build, unsigned num_components, unsigned bit_size)
|
||||||
{
|
{
|
||||||
nir_ssa_undef_instr *undef =
|
nir_ssa_undef_instr *undef =
|
||||||
nir_ssa_undef_instr_create(build->shader, num_components);
|
nir_ssa_undef_instr_create(build->shader, num_components, bit_size);
|
||||||
undef->def.bit_size = bit_size;
|
undef->def.bit_size = bit_size;
|
||||||
if (!undef)
|
if (!undef)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@@ -372,7 +372,8 @@ static nir_ssa_undef_instr *
|
|||||||
clone_ssa_undef(clone_state *state, const nir_ssa_undef_instr *sa)
|
clone_ssa_undef(clone_state *state, const nir_ssa_undef_instr *sa)
|
||||||
{
|
{
|
||||||
nir_ssa_undef_instr *nsa =
|
nir_ssa_undef_instr *nsa =
|
||||||
nir_ssa_undef_instr_create(state->ns, sa->def.num_components);
|
nir_ssa_undef_instr_create(state->ns, sa->def.num_components,
|
||||||
|
sa->def.bit_size);
|
||||||
|
|
||||||
add_remap(state, &nsa->def, &sa->def);
|
add_remap(state, &nsa->def, &sa->def);
|
||||||
|
|
||||||
|
@@ -281,7 +281,8 @@ insert_phi_undef(nir_block *block, nir_block *pred)
|
|||||||
nir_phi_instr *phi = nir_instr_as_phi(instr);
|
nir_phi_instr *phi = nir_instr_as_phi(instr);
|
||||||
nir_ssa_undef_instr *undef =
|
nir_ssa_undef_instr *undef =
|
||||||
nir_ssa_undef_instr_create(ralloc_parent(phi),
|
nir_ssa_undef_instr_create(ralloc_parent(phi),
|
||||||
phi->dest.ssa.num_components);
|
phi->dest.ssa.num_components,
|
||||||
|
phi->dest.ssa.bit_size);
|
||||||
nir_instr_insert_before_cf_list(&impl->body, &undef->instr);
|
nir_instr_insert_before_cf_list(&impl->body, &undef->instr);
|
||||||
nir_phi_src *src = ralloc(phi, nir_phi_src);
|
nir_phi_src *src = ralloc(phi, nir_phi_src);
|
||||||
src->pred = pred;
|
src->pred = pred;
|
||||||
@@ -691,7 +692,8 @@ replace_ssa_def_uses(nir_ssa_def *def, void *void_impl)
|
|||||||
void *mem_ctx = ralloc_parent(impl);
|
void *mem_ctx = ralloc_parent(impl);
|
||||||
|
|
||||||
nir_ssa_undef_instr *undef =
|
nir_ssa_undef_instr *undef =
|
||||||
nir_ssa_undef_instr_create(mem_ctx, def->num_components);
|
nir_ssa_undef_instr_create(mem_ctx, def->num_components,
|
||||||
|
def->bit_size);
|
||||||
nir_instr_insert_before_cf_list(&impl->body, &undef->instr);
|
nir_instr_insert_before_cf_list(&impl->body, &undef->instr);
|
||||||
nir_ssa_def_rewrite_uses(def, nir_src_for_ssa(&undef->def));
|
nir_ssa_def_rewrite_uses(def, nir_src_for_ssa(&undef->def));
|
||||||
return true;
|
return true;
|
||||||
|
@@ -504,8 +504,8 @@ rename_variables_block(nir_block *block, struct lower_variables_state *state)
|
|||||||
*/
|
*/
|
||||||
nir_ssa_undef_instr *undef =
|
nir_ssa_undef_instr *undef =
|
||||||
nir_ssa_undef_instr_create(state->shader,
|
nir_ssa_undef_instr_create(state->shader,
|
||||||
intrin->num_components);
|
intrin->num_components,
|
||||||
undef->def.bit_size = intrin->dest.ssa.bit_size;
|
intrin->dest.ssa.bit_size);
|
||||||
|
|
||||||
nir_instr_insert_before(&intrin->instr, &undef->instr);
|
nir_instr_insert_before(&intrin->instr, &undef->instr);
|
||||||
nir_instr_remove(&intrin->instr);
|
nir_instr_remove(&intrin->instr);
|
||||||
|
@@ -195,7 +195,8 @@ nir_phi_builder_value_get_block_def(struct nir_phi_builder_value *val,
|
|||||||
*/
|
*/
|
||||||
nir_ssa_undef_instr *undef =
|
nir_ssa_undef_instr *undef =
|
||||||
nir_ssa_undef_instr_create(val->builder->shader,
|
nir_ssa_undef_instr_create(val->builder->shader,
|
||||||
val->num_components);
|
val->num_components,
|
||||||
|
val->bit_size);
|
||||||
nir_instr_insert(nir_before_cf_list(&val->builder->impl->body),
|
nir_instr_insert(nir_before_cf_list(&val->builder->impl->body),
|
||||||
&undef->instr);
|
&undef->instr);
|
||||||
val->defs[block->index] = &undef->def;
|
val->defs[block->index] = &undef->def;
|
||||||
|
@@ -160,7 +160,8 @@ static nir_ssa_def *get_ssa_src(nir_register *reg, rewrite_state *state)
|
|||||||
* to preserve the information that this source is undefined
|
* to preserve the information that this source is undefined
|
||||||
*/
|
*/
|
||||||
nir_ssa_undef_instr *instr =
|
nir_ssa_undef_instr *instr =
|
||||||
nir_ssa_undef_instr_create(state->mem_ctx, reg->num_components);
|
nir_ssa_undef_instr_create(state->mem_ctx, reg->num_components,
|
||||||
|
reg->bit_size);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We could just insert the undefined instruction before the instruction
|
* We could just insert the undefined instruction before the instruction
|
||||||
|
Reference in New Issue
Block a user