summaryrefslogtreecommitdiff
path: root/mlir/include/mlir/Transforms/DialectConversion.h
diff options
context:
space:
mode:
Diffstat (limited to 'mlir/include/mlir/Transforms/DialectConversion.h')
-rw-r--r--mlir/include/mlir/Transforms/DialectConversion.h11
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