struct nir_phi_builder *
nir_phi_builder_create(nir_function_impl *impl)
{
- struct nir_phi_builder *pb = ralloc(NULL, struct nir_phi_builder);
+ struct nir_phi_builder *pb = rzalloc(NULL, struct nir_phi_builder);
pb->shader = impl->function->shader;
pb->impl = impl;
val->bit_size, NULL);
phi->instr.block = dom;
exec_list_push_tail(&val->phis, &phi->instr.node);
- def = &phi->dest.ssa;
+ def = val->defs[dom->index] = &phi->dest.ssa;
} else {
/* In this case, we have an actual SSA def. It's either the result of a
* phi node created by the case above or one passed to us through
static int
compare_blocks(const void *_a, const void *_b)
{
- nir_block * const * a = _a;
- nir_block * const * b = _b;
+ const nir_block * const * a = _a;
+ const nir_block * const * b = _b;
return (*a)->index - (*b)->index;
}