Skip to content

Commit 22eb800

Browse files
authored
[flang][NFC] Expose patterns from PreCGRewrite pass (#85156)
Expose patterns so they can be reused in other passes.
1 parent d7f71a3 commit 22eb800

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ void populateFIRToLLVMConversionPatterns(fir::LLVMTypeConverter &converter,
8787
mlir::RewritePatternSet &patterns,
8888
fir::FIRToLLVMPassOptions &options);
8989

90+
/// Populate the pattern set with the PreCGRewrite patterns.
91+
void populatePreCGRewritePatterns(mlir::RewritePatternSet &patterns);
92+
9093
// declarative passes
9194
#define GEN_PASS_REGISTRATION
9295
#include "flang/Optimizer/CodeGen/CGPasses.h.inc"

flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -298,8 +298,7 @@ class CodeGenRewrite : public fir::impl::CodeGenRewriteBase<CodeGenRewrite> {
298298
.isa<fir::SequenceType>());
299299
});
300300
mlir::RewritePatternSet patterns(&context);
301-
patterns.insert<EmboxConversion, ArrayCoorConversion, ReboxConversion,
302-
DeclareOpConversion>(&context);
301+
fir::populatePreCGRewritePatterns(patterns);
303302
if (mlir::failed(
304303
mlir::applyPartialConversion(op, target, std::move(patterns)))) {
305304
mlir::emitError(mlir::UnknownLoc::get(&context),
@@ -327,3 +326,8 @@ class CodeGenRewrite : public fir::impl::CodeGenRewriteBase<CodeGenRewrite> {
327326
std::unique_ptr<mlir::Pass> fir::createFirCodeGenRewritePass() {
328327
return std::make_unique<CodeGenRewrite>();
329328
}
329+
330+
void fir::populatePreCGRewritePatterns(mlir::RewritePatternSet &patterns) {
331+
patterns.insert<EmboxConversion, ArrayCoorConversion, ReboxConversion,
332+
DeclareOpConversion>(patterns.getContext());
333+
}

0 commit comments

Comments
 (0)