diff options
Diffstat (limited to 'mlir/include/mlir/Transforms/DialectConversion.h')
-rw-r--r-- | mlir/include/mlir/Transforms/DialectConversion.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/mlir/include/mlir/Transforms/DialectConversion.h b/mlir/include/mlir/Transforms/DialectConversion.h index 020c8ce9ab4e..f242eea76778 100644 --- a/mlir/include/mlir/Transforms/DialectConversion.h +++ b/mlir/include/mlir/Transforms/DialectConversion.h @@ -520,7 +520,10 @@ public: } void rewrite(Operation *op, ArrayRef<Value> operands, ConversionPatternRewriter &rewriter) const final { - rewrite(cast<SourceOp>(op), OpAdaptor(operands, op->getAttrDictionary()), + auto sourceOp = cast<SourceOp>(op); + rewrite(sourceOp, + OpAdaptor(operands, op->getDiscardableAttrDictionary(), + sourceOp.getProperties()), rewriter); } LogicalResult @@ -529,11 +532,13 @@ public: auto sourceOp = cast<SourceOp>(op); if constexpr (SourceOp::hasProperties()) return matchAndRewrite(sourceOp, - OpAdaptor(operands, op->getAttrDictionary(), + OpAdaptor(operands, + op->getDiscardableAttrDictionary(), sourceOp.getProperties()), rewriter); return matchAndRewrite( - sourceOp, OpAdaptor(operands, op->getAttrDictionary()), rewriter); + sourceOp, OpAdaptor(operands, op->getDiscardableAttrDictionary()), + rewriter); } /// Rewrite and Match methods that operate on the SourceOp type. These must be |