Skip to content

Commit 09b6de3

Browse files
[mlir][NFC] Mark type converter in populate... functions as const
This commit marks the type converter in `populate...` functions as `const`. This is useful for debugging. Patterns already take a `const` type converter, but some `populate...` patterns 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, from which programmers can conclude that they 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.
1 parent 91fdfec commit 09b6de3

File tree

115 files changed

+332
-314
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+332
-314
lines changed

flang/include/flang/Optimizer/CodeGen/CodeGen.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@ std::unique_ptr<mlir::Pass> createLLVMDialectToLLVMPass(
7272
[](llvm::Module &m, llvm::raw_ostream &out) { m.print(out, nullptr); });
7373

7474
/// Populate the given list with patterns that convert from FIR to LLVM.
75-
void populateFIRToLLVMConversionPatterns(fir::LLVMTypeConverter &converter,
76-
mlir::RewritePatternSet &patterns,
77-
fir::FIRToLLVMPassOptions &options);
75+
void populateFIRToLLVMConversionPatterns(
76+
const fir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns,
77+
fir::FIRToLLVMPassOptions &options);
7878

7979
/// Populate the pattern set with the PreCGRewrite patterns.
8080
void populatePreCGRewritePatterns(mlir::RewritePatternSet &patterns,

flang/include/flang/Optimizer/CodeGen/CodeGenOpenMP.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class LLVMTypeConverter;
1919
/// dialect, utilised in cases where the default OpenMP dialect handling cannot
2020
/// handle all cases for intermingled fir types and operations.
2121
void populateOpenMPFIRToLLVMConversionPatterns(
22-
LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns);
22+
const LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns);
2323

2424
} // namespace fir
2525

flang/include/flang/Optimizer/Transforms/CufOpConversion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class DataLayout;
2222

2323
namespace cuf {
2424

25-
void populateCUFToFIRConversionPatterns(fir::LLVMTypeConverter &converter,
25+
void populateCUFToFIRConversionPatterns(const fir::LLVMTypeConverter &converter,
2626
mlir::DataLayout &dl,
2727
mlir::RewritePatternSet &patterns);
2828

flang/lib/Optimizer/CodeGen/CodeGen.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3823,7 +3823,7 @@ fir::createLLVMDialectToLLVMPass(llvm::raw_ostream &output,
38233823
}
38243824

38253825
void fir::populateFIRToLLVMConversionPatterns(
3826-
fir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns,
3826+
const fir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns,
38273827
fir::FIRToLLVMPassOptions &options) {
38283828
patterns.insert<
38293829
AbsentOpConversion, AddcOpConversion, AddrOfOpConversion,

flang/lib/Optimizer/CodeGen/CodeGenOpenMP.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,6 @@ struct MapInfoOpConversion
9393
} // namespace
9494

9595
void fir::populateOpenMPFIRToLLVMConversionPatterns(
96-
LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns) {
96+
const LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns) {
9797
patterns.add<MapInfoOpConversion>(converter);
9898
}

flang/lib/Optimizer/Transforms/CufOpConversion.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ struct CufAllocOpConversion : public mlir::OpRewritePattern<cuf::AllocOp> {
222222
using OpRewritePattern::OpRewritePattern;
223223

224224
CufAllocOpConversion(mlir::MLIRContext *context, mlir::DataLayout *dl,
225-
fir::LLVMTypeConverter *typeConverter)
225+
const fir::LLVMTypeConverter *typeConverter)
226226
: OpRewritePattern(context), dl{dl}, typeConverter{typeConverter} {}
227227

228228
mlir::LogicalResult
@@ -311,7 +311,7 @@ struct CufAllocOpConversion : public mlir::OpRewritePattern<cuf::AllocOp> {
311311

312312
private:
313313
mlir::DataLayout *dl;
314-
fir::LLVMTypeConverter *typeConverter;
314+
const fir::LLVMTypeConverter *typeConverter;
315315
};
316316

317317
struct CufFreeOpConversion : public mlir::OpRewritePattern<cuf::FreeOp> {
@@ -583,7 +583,7 @@ class CufOpConversion : public fir::impl::CufOpConversionBase<CufOpConversion> {
583583
} // namespace
584584

585585
void cuf::populateCUFToFIRConversionPatterns(
586-
fir::LLVMTypeConverter &converter, mlir::DataLayout &dl,
586+
const fir::LLVMTypeConverter &converter, mlir::DataLayout &dl,
587587
mlir::RewritePatternSet &patterns) {
588588
patterns.insert<CufAllocOpConversion>(patterns.getContext(), &dl, &converter);
589589
patterns.insert<CufAllocateOpConversion, CufDeallocateOpConversion,

mlir/docs/Bufferization.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,7 @@ is very small, and follows the basic pattern of any dialect conversion pass.
651651

652652
```
653653
void mlir::populateTensorBufferizePatterns(
654-
BufferizeTypeConverter &typeConverter, RewritePatternSet &patterns) {
654+
const BufferizeTypeConverter &typeConverter, RewritePatternSet &patterns) {
655655
patterns.add<BufferizeCastOp, BufferizeExtractOp>(typeConverter,
656656
patterns.getContext());
657657
}

mlir/include/mlir/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class Pass;
2424
/// Note: The ROCDL target does not support the LLVM bfloat type at this time
2525
/// and so this function will add conversions to change all `bfloat` uses
2626
/// to `i16`.
27-
void populateAMDGPUToROCDLConversionPatterns(LLVMTypeConverter &converter,
27+
void populateAMDGPUToROCDLConversionPatterns(const LLVMTypeConverter &converter,
2828
RewritePatternSet &patterns,
2929
amdgpu::Chipset chipset);
3030

mlir/include/mlir/Conversion/ArithToLLVM/ArithToLLVM.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class Pass;
2222
#include "mlir/Conversion/Passes.h.inc"
2323

2424
namespace arith {
25-
void populateArithToLLVMConversionPatterns(LLVMTypeConverter &converter,
25+
void populateArithToLLVMConversionPatterns(const LLVMTypeConverter &converter,
2626
RewritePatternSet &patterns);
2727

2828
void registerConvertArithToLLVMInterface(DialectRegistry &registry);

mlir/include/mlir/Conversion/ArithToSPIRV/ArithToSPIRV.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class Pass;
2222
#include "mlir/Conversion/Passes.h.inc"
2323

2424
namespace arith {
25-
void populateArithToSPIRVPatterns(SPIRVTypeConverter &typeConverter,
25+
void populateArithToSPIRVPatterns(const SPIRVTypeConverter &typeConverter,
2626
RewritePatternSet &patterns);
2727

2828
std::unique_ptr<OperationPass<>> createConvertArithToSPIRVPass();

0 commit comments

Comments
 (0)