#ifndef NDEBUG
/* Just in case someone uses short_path by accident */
for (unsigned i = 0; i < ARRAY_SIZE(path->_short_path); i++)
- path->_short_path[i] = (void *)0xdeadbeef;
+ path->_short_path[i] = (void *)(uintptr_t)0xdeadbeef;
#endif
path->path = ralloc_array(mem_ctx, nir_deref_instr *, count + 1);
for (nir_deref_instr *d = instr; d; d = nir_deref_instr_parent(d)) {
/* If anyone is using this deref, leave it alone */
assert(d->dest.is_ssa);
- if (!list_empty(&d->dest.ssa.uses))
+ if (!list_is_empty(&d->dest.ssa.uses))
break;
nir_instr_remove(&d->instr);
unsigned
nir_deref_instr_ptr_as_array_stride(nir_deref_instr *deref)
{
- assert(deref->deref_type == nir_deref_type_ptr_as_array);
- nir_deref_instr *parent = nir_deref_instr_parent(deref);
- switch (parent->deref_type) {
+ switch (deref->deref_type) {
case nir_deref_type_array:
- return glsl_get_explicit_stride(nir_deref_instr_parent(parent)->type);
+ return glsl_get_explicit_stride(nir_deref_instr_parent(deref)->type);
case nir_deref_type_ptr_as_array:
- return nir_deref_instr_ptr_as_array_stride(parent);
+ return nir_deref_instr_ptr_as_array_stride(nir_deref_instr_parent(deref));
case nir_deref_type_cast:
- return parent->cast.ptr_stride;
+ return deref->cast.ptr_stride;
default:
- unreachable("Invalid parent for ptr_as_array deref");
+ return 0;
}
}
if ((*p)->deref_type == nir_deref_type_array) {
nir_ssa_def *index = nir_ssa_for_src(b, (*p)->arr.index, 1);
int stride = type_get_array_stride((*p)->type, size_align);
- offset = nir_iadd(b, offset, nir_imul_imm(b, index, stride));
+ offset = nir_iadd(b, offset, nir_amul_imm(b, index, stride));
} else if ((*p)->deref_type == nir_deref_type_struct) {
/* p starts at path[1], so this is safe */
nir_deref_instr *parent = *(p - 1);
{
assert(path->path[0]->deref_type == nir_deref_type_var);
- if (path->path[0]->var->data.image.access & ACCESS_COHERENT)
+ if (path->path[0]->var->data.access & ACCESS_COHERENT)
return true;
for (nir_deref_instr **p = &path->path[1]; *p; p++) {
}
/* If uses would be a bit crazy */
- assert(list_empty(&cast->dest.ssa.if_uses));
+ assert(list_is_empty(&cast->dest.ssa.if_uses));
nir_deref_instr_remove_if_unused(cast);
return progress;