[mlir][NFC] Mark type converter in populate... functions as const (#111250)

This commit marks the type converter in `populate...` functions as
`const`. This is useful for debugging.

Patterns already take a `const` type converter. However, some
`populate...` functions do not only add new patterns, but also add
additional type conversion rules. That makes it difficult to find the
place where a type conversion was added in the code base. With this
change, all `populate...` functions that only populate pattern now have
a `const` type converter. Programmers can then conclude from the
function signature that these functions do not register any new type
conversion rules.

Also some minor cleanups around the 1:N dialect conversion
infrastructure, which did not always pass the type converter as a
`const` object internally.
This commit is contained in:
Matthias Springer
2024-10-05 21:32:40 +02:00
committed by GitHub
parent 73683cc1ab
commit 206fad0e21
115 changed files with 293 additions and 282 deletions

View File

@@ -746,8 +746,8 @@ class SparseTensorAllocConverter
: public OpConversionPattern<bufferization::AllocTensorOp> {
public:
using OpConversionPattern::OpConversionPattern;
SparseTensorAllocConverter(TypeConverter &typeConverter, MLIRContext *context,
bool enableInit)
SparseTensorAllocConverter(const TypeConverter &typeConverter,
MLIRContext *context, bool enableInit)
: OpConversionPattern(typeConverter, context),
enableBufferInitialization(enableInit) {}
@@ -808,8 +808,8 @@ private:
class SparseTensorEmptyConverter : public OpConversionPattern<tensor::EmptyOp> {
public:
using OpConversionPattern::OpConversionPattern;
SparseTensorEmptyConverter(TypeConverter &typeConverter, MLIRContext *context,
bool enableInit)
SparseTensorEmptyConverter(const TypeConverter &typeConverter,
MLIRContext *context, bool enableInit)
: OpConversionPattern(typeConverter, context),
enableBufferInitialization(enableInit) {}
@@ -850,7 +850,7 @@ class SparseTensorDeallocConverter
: public OpConversionPattern<bufferization::DeallocTensorOp> {
public:
using OpConversionPattern::OpConversionPattern;
SparseTensorDeallocConverter(TypeConverter &typeConverter,
SparseTensorDeallocConverter(const TypeConverter &typeConverter,
MLIRContext *context, bool createDeallocs)
: OpConversionPattern(typeConverter, context),
createDeallocs(createDeallocs) {}
@@ -1411,7 +1411,7 @@ struct SparseAssembleOpConverter : public OpConversionPattern<AssembleOp> {
struct SparseDisassembleOpConverter
: public OpConversionPattern<DisassembleOp> {
using OpConversionPattern::OpConversionPattern;
SparseDisassembleOpConverter(TypeConverter &typeConverter,
SparseDisassembleOpConverter(const TypeConverter &typeConverter,
MLIRContext *context)
: OpConversionPattern(typeConverter, context) {}
@@ -1604,7 +1604,7 @@ struct SparseHasRuntimeLibraryConverter
/// Populates the given patterns list with conversion rules required for
/// the sparsification of linear algebra operations.
void mlir::populateSparseTensorCodegenPatterns(
TypeConverter &typeConverter, RewritePatternSet &patterns,
const TypeConverter &typeConverter, RewritePatternSet &patterns,
bool createSparseDeallocs, bool enableBufferInitialization) {
patterns.add<
SparseAssembleOpConverter, SparseDisassembleOpConverter,