mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 11:00:11 +01:00
nir: update fixup_phi_srcs() to handle registers
We need to do this because we partially get out of SSA when unrolling and cloning loops. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
d781320974
commit
b84dfa0f62
1 changed files with 9 additions and 4 deletions
|
|
@ -603,12 +603,17 @@ fixup_phi_srcs(clone_state *state)
|
|||
{
|
||||
list_for_each_entry_safe(nir_phi_src, src, &state->phi_srcs, src.use_link) {
|
||||
src->pred = remap_local(state, src->pred);
|
||||
assert(src->src.is_ssa);
|
||||
src->src.ssa = remap_local(state, src->src.ssa);
|
||||
|
||||
/* Remove from this list and place in the uses of the SSA def */
|
||||
/* Remove from this list */
|
||||
list_del(&src->src.use_link);
|
||||
list_addtail(&src->src.use_link, &src->src.ssa->uses);
|
||||
|
||||
if (src->src.is_ssa) {
|
||||
src->src.ssa = remap_local(state, src->src.ssa);
|
||||
list_addtail(&src->src.use_link, &src->src.ssa->uses);
|
||||
} else {
|
||||
src->src.reg.reg = remap_reg(state, src->src.reg.reg);
|
||||
list_addtail(&src->src.use_link, &src->src.reg.reg->uses);
|
||||
}
|
||||
}
|
||||
assert(list_empty(&state->phi_srcs));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue