pco: temporarily prevent shared mem (coeffs) and vregs from being copy proped

Signed-off-by: Simon Perretta <simon.perretta@imgtec.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36412>
This commit is contained in:
Simon Perretta 2025-01-23 18:57:10 +00:00 committed by Marge Bot
parent 725293c8f7
commit adf02de9f4
2 changed files with 4 additions and 7 deletions

View file

@ -258,9 +258,6 @@ static inline bool try_back_prop_instr(struct pco_use *uses, pco_instr *instr)
pco_ref *pdest_from = &use->instr->dest[0];
if (pco_ref_is_vreg(*pdest_from))
return false;
assert(pco_ref_get_bits(*pdest_from) == pco_ref_get_bits(*pdest_to));
assert(pco_ref_get_chans(*pdest_from) == pco_ref_get_chans(*pdest_to));
assert(!pco_ref_has_mods_set(*pdest_from) &&

View file

@ -481,7 +481,7 @@ static pco_instr *trans_load_common_store(trans_ctx *tctx,
assert(offset < range->count);
pco_ref src = pco_ref_hwreg_vec(range->start + offset, reg_class, chans);
return pco_mov(&tctx->b, dest, src, .rpt = chans);
return pco_mbyp(&tctx->b, dest, src, .rpt = chans);
}
pco_ref src_base = pco_ref_hwreg_vec(range->start, reg_class, chans);
@ -515,7 +515,7 @@ static pco_instr *trans_store_common_store(trans_ctx *tctx,
assert(offset < range->count);
pco_ref dest = pco_ref_hwreg_vec(range->start + offset, reg_class, chans);
return pco_mov(&tctx->b, dest, data, .rpt = chans);
return pco_mbyp(&tctx->b, dest, data, .rpt = chans);
}
pco_ref dest_base = pco_ref_hwreg_vec(range->start, reg_class, chans);
@ -1067,14 +1067,14 @@ static pco_instr *trans_reg_intr(trans_ctx *tctx,
assert(!nir_intrinsic_legacy_fabs(intr));
assert(!nir_intrinsic_legacy_fneg(intr));
return pco_mov(&tctx->b, dest, pco_ref_ssa_vreg(func, src0, reg_bits));
return pco_mbyp(&tctx->b, dest, pco_ref_ssa_vreg(func, src0, reg_bits));
case nir_intrinsic_store_reg:
assert(!nir_intrinsic_base(intr));
assert(nir_intrinsic_write_mask(intr) == 1);
assert(!nir_intrinsic_legacy_fsat(intr));
return pco_mov(&tctx->b, pco_ref_ssa_vreg(func, src1, reg_bits), src0);
return pco_mbyp(&tctx->b, pco_ref_ssa_vreg(func, src1, reg_bits), src0);
default:
break;