File tree Expand file tree Collapse file tree 2 files changed +15
-1
lines changed
include/mlir/Dialect/StandardOps/Transforms
lib/Dialect/StandardOps/Transforms Expand file tree Collapse file tree 2 files changed +15
-1
lines changed Original file line number Diff line number Diff line change 19
19
20
20
namespace mlir {
21
21
22
+ class GlobalCreator ;
22
23
class RewritePatternSet ;
23
24
using OwningRewritePatternList = RewritePatternSet;
24
25
@@ -31,6 +32,12 @@ std::unique_ptr<Pass> createStdBufferizePass();
31
32
// / Creates an instance of func bufferization pass.
32
33
std::unique_ptr<Pass> createFuncBufferizePass ();
33
34
35
+ // / Add patterns to bufferize tensor constants into global memrefs to the given
36
+ // / pattern list.
37
+ void populateTensorConstantBufferizePatterns (
38
+ GlobalCreator &globalCreator, BufferizeTypeConverter &typeConverter,
39
+ RewritePatternSet &patterns);
40
+
34
41
// / Creates an instance of tensor constant bufferization pass.
35
42
std::unique_ptr<Pass> createTensorConstantBufferizePass ();
36
43
Original file line number Diff line number Diff line change @@ -81,6 +81,13 @@ class BufferizeTensorConstantOp : public OpConversionPattern<ConstantOp> {
81
81
};
82
82
} // namespace
83
83
84
+ void mlir::populateTensorConstantBufferizePatterns (
85
+ GlobalCreator &globalCreator, BufferizeTypeConverter &typeConverter,
86
+ RewritePatternSet &patterns) {
87
+ patterns.add <BufferizeTensorConstantOp>(globalCreator, typeConverter,
88
+ patterns.getContext ());
89
+ }
90
+
84
91
namespace {
85
92
struct TensorConstantBufferizePass
86
93
: public TensorConstantBufferizeBase<TensorConstantBufferizePass> {
@@ -94,7 +101,7 @@ struct TensorConstantBufferizePass
94
101
ConversionTarget target (*context);
95
102
96
103
target.addLegalDialect <memref::MemRefDialect>();
97
- patterns. add <BufferizeTensorConstantOp> (globals, typeConverter, context );
104
+ populateTensorConstantBufferizePatterns (globals, typeConverter, patterns );
98
105
target.addDynamicallyLegalOp <ConstantOp>(
99
106
[&](ConstantOp op) { return typeConverter.isLegal (op.getType ()); });
100
107
if (failed (applyPartialConversion (module , target, std::move (patterns))))
You can’t perform that action at this time.
0 commit comments