@@ -29,15 +29,15 @@ namespace mlir {
29
29
// / A helper type converter class for using inside Buffer Assignment operation
30
30
// / conversion patterns. The default constructor keeps all the types intact
31
31
// / except for the ranked-tensor types which is converted to memref types.
32
- class BufferAssignmentTypeConverter : public TypeConverter {
32
+ class BufferizeTypeConverter : public TypeConverter {
33
33
public:
34
34
// / This enum is for showing how buffer placement operation converters should
35
35
// / conduct with certain result type after type conversion. This value can be
36
36
// / set/get for each specific type using setResultConversionKind or
37
37
// / getResultConversionKind.
38
38
enum ResultConversionKind { AppendToArgumentsList, KeepAsFunctionResult };
39
39
40
- BufferAssignmentTypeConverter ();
40
+ BufferizeTypeConverter ();
41
41
42
42
// / This method tries to decompose a value of a certain type using provided
43
43
// / decompose callback functions. If it is unable to do so, the original value
@@ -131,46 +131,43 @@ class BufferAssignmentTypeConverter : public TypeConverter {
131
131
SmallVector<DecomposeTypeConversionCallFn, 2 > decomposeTypeConversions;
132
132
};
133
133
134
- // / Helper conversion pattern that encapsulates a BufferAssignmentTypeConverter
134
+ // / Helper conversion pattern that encapsulates a BufferizeTypeConverter
135
135
// / instance.
136
136
template <typename SourceOp>
137
- class BufferAssignmentOpConversionPattern
138
- : public OpConversionPattern<SourceOp> {
137
+ class BufferizeOpConversionPattern : public OpConversionPattern <SourceOp> {
139
138
public:
140
- explicit BufferAssignmentOpConversionPattern (
141
- MLIRContext *context, BufferAssignmentTypeConverter &converter,
142
- PatternBenefit benefit = 1 )
139
+ explicit BufferizeOpConversionPattern (MLIRContext *context,
140
+ BufferizeTypeConverter &converter,
141
+ PatternBenefit benefit = 1 )
143
142
: OpConversionPattern<SourceOp>(context, benefit), converter(converter) {}
144
143
145
144
protected:
146
- BufferAssignmentTypeConverter &converter;
145
+ BufferizeTypeConverter &converter;
147
146
};
148
147
149
- // / Helper conversion pattern that encapsulates a BufferAssignmentTypeConverter
148
+ // / Helper conversion pattern that encapsulates a BufferizeTypeConverter
150
149
// / instance and that operates on Operation* to be compatible with OpInterfaces.
151
150
// / This allows avoiding to instantiate N patterns for ops that can be subsumed
152
151
// / by a single op interface (e.g. Linalg named ops).
153
- class BufferAssignmentConversionPattern : public ConversionPattern {
152
+ class BufferizeConversionPattern : public ConversionPattern {
154
153
public:
155
- explicit BufferAssignmentConversionPattern (
156
- MLIRContext *context, BufferAssignmentTypeConverter &converter,
157
- PatternBenefit benefit = 1 )
154
+ explicit BufferizeConversionPattern (MLIRContext *context,
155
+ BufferizeTypeConverter &converter,
156
+ PatternBenefit benefit = 1 )
158
157
: ConversionPattern(benefit, converter, MatchAnyOpTypeTag()),
159
158
converter(converter) {}
160
159
161
160
protected:
162
- BufferAssignmentTypeConverter &converter;
161
+ BufferizeTypeConverter &converter;
163
162
};
164
163
165
- // / Converts the signature of the function using BufferAssignmentTypeConverter .
164
+ // / Converts the signature of the function using BufferizeTypeConverter .
166
165
// / Each result type of the function is kept as a function result or appended to
167
166
// / the function arguments list based on ResultConversionKind for the converted
168
167
// / result type.
169
- class BufferAssignmentFuncOpConverter
170
- : public BufferAssignmentOpConversionPattern<FuncOp> {
168
+ class BufferizeFuncOpConverter : public BufferizeOpConversionPattern <FuncOp> {
171
169
public:
172
- using BufferAssignmentOpConversionPattern<
173
- FuncOp>::BufferAssignmentOpConversionPattern;
170
+ using BufferizeOpConversionPattern<FuncOp>::BufferizeOpConversionPattern;
174
171
175
172
// / Performs the actual signature rewriting step.
176
173
LogicalResult matchAndRewrite (mlir::FuncOp, ArrayRef<Value>,
@@ -183,11 +180,11 @@ class BufferAssignmentFuncOpConverter
183
180
// / operation from the operand to the target function argument is inserted.
184
181
template <typename ReturnOpSourceTy, typename ReturnOpTargetTy,
185
182
typename CopyOpTy>
186
- class BufferAssignmentReturnOpConverter
187
- : public BufferAssignmentOpConversionPattern <ReturnOpSourceTy> {
183
+ class BufferizeReturnOpConverter
184
+ : public BufferizeOpConversionPattern <ReturnOpSourceTy> {
188
185
public:
189
- using BufferAssignmentOpConversionPattern <
190
- ReturnOpSourceTy>::BufferAssignmentOpConversionPattern ;
186
+ using BufferizeOpConversionPattern <
187
+ ReturnOpSourceTy>::BufferizeOpConversionPattern ;
191
188
192
189
// / Performs the actual return-op conversion step.
193
190
LogicalResult
@@ -212,10 +209,10 @@ class BufferAssignmentReturnOpConverter
212
209
Type origin = originTypes[value.index ()];
213
210
Type converted = value.value ().getType ();
214
211
auto kind = this ->converter .getResultConversionKind (origin, converted);
215
- if (kind == BufferAssignmentTypeConverter ::KeepAsFunctionResult)
212
+ if (kind == BufferizeTypeConverter ::KeepAsFunctionResult)
216
213
newOperands.push_back (value.value ());
217
214
else
218
- // kind = BufferAssignmentTypeConverter ::AppendToArgumentsList
215
+ // kind = BufferizeTypeConverter ::AppendToArgumentsList
219
216
needCopyOperands.push_back (value.value ());
220
217
}
221
218
}
@@ -242,12 +239,10 @@ class BufferAssignmentReturnOpConverter
242
239
243
240
// / Rewrites the `CallOp` to match its operands and results with the signature
244
241
// / of the callee after rewriting the callee with
245
- // / BufferAssignmentFuncOpConverter.
246
- class BufferAssignmentCallOpConverter
247
- : public BufferAssignmentOpConversionPattern<CallOp> {
242
+ // / BufferizeFuncOpConverter.
243
+ class BufferizeCallOpConverter : public BufferizeOpConversionPattern <CallOp> {
248
244
public:
249
- using BufferAssignmentOpConversionPattern<
250
- CallOp>::BufferAssignmentOpConversionPattern;
245
+ using BufferizeOpConversionPattern<CallOp>::BufferizeOpConversionPattern;
251
246
252
247
// / Performs the actual rewriting step.
253
248
LogicalResult matchAndRewrite (CallOp, ArrayRef<Value>,
@@ -258,14 +253,15 @@ class BufferAssignmentCallOpConverter
258
253
// / assignment.
259
254
template <typename ReturnOpSourceTy, typename ReturnOpTargetTy,
260
255
typename CopyOpTy>
261
- static void populateWithBufferAssignmentOpConversionPatterns (
262
- MLIRContext *context, BufferAssignmentTypeConverter &converter,
263
- OwningRewritePatternList &patterns) {
256
+ static void
257
+ populateWithBufferizeOpConversionPatterns (MLIRContext *context,
258
+ BufferizeTypeConverter &converter,
259
+ OwningRewritePatternList &patterns) {
264
260
// clang-format off
265
261
patterns.insert <
266
- BufferAssignmentCallOpConverter ,
267
- BufferAssignmentFuncOpConverter ,
268
- BufferAssignmentReturnOpConverter
262
+ BufferizeCallOpConverter ,
263
+ BufferizeFuncOpConverter ,
264
+ BufferizeReturnOpConverter
269
265
<ReturnOpSourceTy, ReturnOpTargetTy, CopyOpTy>
270
266
>(context, converter);
271
267
// clang-format on
0 commit comments