diff --git a/mlir/include/mlir/IR/PatternMatch.h b/mlir/include/mlir/IR/PatternMatch.h --- a/mlir/include/mlir/IR/PatternMatch.h +++ b/mlir/include/mlir/IR/PatternMatch.h @@ -1632,12 +1632,15 @@ // Add a matchAndRewrite style pattern represented as a C function pointer. template - RewritePatternSet &add(LogicalResult (*implFn)(OpType, - PatternRewriter &rewriter)) { + RewritePatternSet & + add(LogicalResult (*implFn)(OpType, PatternRewriter &rewriter), + PatternBenefit benefit = 1, ArrayRef generatedNames = {}) { struct FnPattern final : public OpRewritePattern { FnPattern(LogicalResult (*implFn)(OpType, PatternRewriter &rewriter), - MLIRContext *context) - : OpRewritePattern(context), implFn(implFn) {} + MLIRContext *context, PatternBenefit benefit, + ArrayRef generatedNames) + : OpRewritePattern(context, benefit, generatedNames), + implFn(implFn) {} LogicalResult matchAndRewrite(OpType op, PatternRewriter &rewriter) const override { @@ -1647,7 +1650,8 @@ private: LogicalResult (*implFn)(OpType, PatternRewriter &rewriter); }; - add(std::make_unique(std::move(implFn), getContext())); + add(std::make_unique(std::move(implFn), getContext(), benefit, + generatedNames)); return *this; }