13#ifndef CIRCT_SUPPORT_CONVERSIONPATTERNSET_H
14#define CIRCT_SUPPORT_CONVERSIONPATTERNSET_H
17#include "mlir/IR/PatternMatch.h"
31 using RewritePatternSet::add;
36 add(LogicalResult (*implFn)(Op,
typename Op::Adaptor,
37 ConversionPatternRewriter &)) {
41 LogicalResult (*implFn)(Op,
typename Op::Adaptor,
42 ConversionPatternRewriter &);
45 matchAndRewrite(Op op,
typename Op::Adaptor adaptor,
46 ConversionPatternRewriter &rewriter)
const override {
47 return implFn(op, adaptor, rewriter);
60 ConversionPatternRewriter &,
61 const TypeConverter &)) {
65 LogicalResult (*implFn)(Op,
typename Op::Adaptor,
66 ConversionPatternRewriter &,
67 const TypeConverter &);
70 matchAndRewrite(Op op,
typename Op::Adaptor adaptor,
71 ConversionPatternRewriter &rewriter)
const override {
72 return implFn(op, adaptor, rewriter, *this->typeConverter);
RewritePatternSet pattern
Extension of RewritePatternSet that allows adding matchAndRewrite functions with op adaptors and Conv...
ConversionPatternSet(MLIRContext *context, const TypeConverter &typeConverter)
ConversionPatternSet & add(LogicalResult(*implFn)(Op, typename Op::Adaptor, ConversionPatternRewriter &, const TypeConverter &))
Add a matchAndRewrite function as a conversion pattern to the set.
ConversionPatternSet & add(LogicalResult(*implFn)(Op, typename Op::Adaptor, ConversionPatternRewriter &))
Add a matchAndRewrite function as a conversion pattern to the set.
const TypeConverter & typeConverter
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.