@@ -29,32 +29,35 @@ namespace {
29
29
// Pattern to convert vector operations to scalar operations. This is needed as
30
30
// libm calls require scalars.
31
31
template <typename Op>
32
- struct VecOpToScalarOp : public OpRewritePattern <Op> {
32
+ struct VecOpToScalarOp : public OpConversionPattern <Op> {
33
33
public:
34
- using OpRewritePattern <Op>::OpRewritePattern ;
34
+ using OpConversionPattern <Op>::OpConversionPattern ;
35
35
36
- LogicalResult matchAndRewrite (Op op, PatternRewriter &rewriter) const final ;
36
+ LogicalResult
37
+ matchAndRewrite (Op op, typename OpConversionPattern<Op>::OpAdaptor adaptor, ConversionPatternRewriter &rewriter) const final ;
37
38
};
38
39
// Pattern to promote an op of a smaller floating point type to F32.
39
40
template <typename Op>
40
- struct PromoteOpToF32 : public OpRewritePattern <Op> {
41
+ struct PromoteOpToF32 : public OpConversionPattern <Op> {
41
42
public:
42
- using OpRewritePattern <Op>::OpRewritePattern ;
43
+ using OpConversionPattern <Op>::OpConversionPattern ;
43
44
44
- LogicalResult matchAndRewrite (Op op, PatternRewriter &rewriter) const final ;
45
+ LogicalResult
46
+ matchAndRewrite (Op op, typename OpConversionPattern<Op>::OpAdaptor adaptor, ConversionPatternRewriter &rewriter) const final ;
45
47
};
46
48
// Pattern to convert scalar math operations to calls to libm functions.
47
49
// Additionally the libm function signatures are declared.
48
50
template <typename Op>
49
- struct ScalarOpToLibmCall : public OpRewritePattern <Op> {
51
+ struct ScalarOpToLibmCall : public OpConversionPattern <Op> {
50
52
public:
51
53
using OpRewritePattern<Op>::OpRewritePattern;
52
54
ScalarOpToLibmCall (MLIRContext *context, PatternBenefit benefit,
53
55
StringRef floatFunc, StringRef doubleFunc)
54
- : OpRewritePattern <Op>(context, benefit), floatFunc(floatFunc),
56
+ : OpConversionPattern <Op>(context, benefit), floatFunc(floatFunc),
55
57
doubleFunc (doubleFunc) {};
56
58
57
- LogicalResult matchAndRewrite (Op op, PatternRewriter &rewriter) const final ;
59
+ LogicalResult
60
+ matchAndRewrite (Op op, typename OpConversionPattern<Op>::OpAdaptor adaptor, ConversionPatternRewriter &rewriter) const final ;
58
61
59
62
private:
60
63
std::string floatFunc, doubleFunc;
0 commit comments