fix weightAlways attribute in spatial

This commit is contained in:
NiccoloN
2026-04-23 10:04:47 +02:00
parent 412ca957f6
commit 89b3501aa8
5 changed files with 59 additions and 11 deletions

View File

@@ -392,7 +392,9 @@ void ONNXToSpatialPass::mergeTriviallyConnectedComputes(func::FuncOp funcOp) {
void ONNXToSpatialPass::annotateWeightsConstants(func::FuncOp funcOp) const {
funcOp.walk([&](arith::ConstantOp constantOp) {
bool isAlwaysWeight =
llvm::all_of(constantOp->getUsers(), [](auto user) -> bool { return isa<spatial::SpatCompute>(user); });
!constantOp->use_empty() && llvm::all_of(constantOp->getUses(), [](OpOperand& use) -> bool {
return isSpatialMvmVmmWeightUse(use);
});
if (isAlwaysWeight)
markWeightAlways(constantOp);
});