[Mlir-commits] [mlir] [mlir][tosa][linalg] Pass local_bound attribute to named linalg ops (PR #146883)
Hsiangkai Wang
llvmlistbot at llvm.org
Fri Jul 4 03:39:16 PDT 2025
================
@@ -398,36 +398,43 @@ class ConvConverter : public OpConversionPattern<TosaConvOp> {
Value broadcastBias =
linalgBroadcastAndMaybeExt(rewriter, loc, bias, biasEmptyTensor);
+ bool localBound = false;
+ if (auto localBoundAttr =
+ op->template getAttrOfType<BoolAttr>("local_bound"))
+ localBound = localBoundAttr.getValue();
+
if (hasZp) {
auto iZp = rewriter.getI32IntegerAttr(inputZpVal);
auto kZp = rewriter.getI32IntegerAttr(weightZpVal);
auto iZpVal = rewriter.create<arith::ConstantOp>(loc, iZp);
auto kZpVal = rewriter.create<arith::ConstantOp>(loc, kZp);
- Value conv =
- rewriter
- .create<LinalgConvQOp>(
- loc, resultTy, ValueRange{input, weight, iZpVal, kZpVal},
- ValueRange{broadcastBias}, strideAttr, dilationAttr)
- ->getResult(0);
+ auto conv = rewriter.create<LinalgConvQOp>(
+ loc, resultTy, ValueRange{input, weight, iZpVal, kZpVal},
+ ValueRange{broadcastBias}, strideAttr, dilationAttr);
+
+ if (localBound)
+ conv->setAttr("local_bound", rewriter.getBoolAttr(true));
- rewriter.replaceOp(op, conv);
+ rewriter.replaceOp(op, conv->getResult(0));
return success();
}
- Value conv = rewriter
- .create<LinalgConvOp>(
- loc, accTy, ValueRange{input, weight},
- ValueRange{broadcastBias}, strideAttr, dilationAttr)
- ->getResult(0);
+ auto conv = rewriter.create<LinalgConvOp>(
+ loc, accTy, ValueRange{input, weight}, ValueRange{broadcastBias},
+ strideAttr, dilationAttr);
+ Value convVal = conv.getResult(0);
+
+ if (localBound)
+ conv->setAttr("local_bound", rewriter.getBoolAttr(true));
----------------
Hsiangkai wrote:
Make sense. I updated the attribute name to `tosa.local_bound` in linalg.
https://github.com/llvm/llvm-project/pull/146883
More information about the Mlir-commits
mailing list