Skip to content

Commit 7eaae4e

Browse files
authored
[flang][CodeGen][NFC] Reduce PreCGRewrite pass boilerplate (#94329)
The pass constructor can be generated automatically by tablegen. This pass is module-level and runs on all instances of target operations inside of it and so does not need any modification to support alternative top-level operations.
1 parent a07f03f commit 7eaae4e

File tree

4 files changed

+3
-13
lines changed

4 files changed

+3
-13
lines changed

flang/include/flang/Optimizer/CodeGen/CGPasses.td

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ def CodeGenRewrite : Pass<"cg-rewrite", "mlir::ModuleOp"> {
4343
let description = [{
4444
Fuse specific subgraphs into single Ops for code generation.
4545
}];
46-
let constructor = "::fir::createFirCodeGenRewritePass()";
4746
let dependentDialects = [
4847
"fir::FIROpsDialect", "fir::FIRCodeGenDialect"
4948
];

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

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,6 @@ struct NameUniquer;
2828
#define GEN_PASS_DECL_BOXEDPROCEDUREPASS
2929
#include "flang/Optimizer/CodeGen/CGPasses.h.inc"
3030

31-
/// Prerequiste pass for code gen. Perform intermediate rewrites to perform
32-
/// the code gen (to LLVM-IR dialect) conversion.
33-
std::unique_ptr<mlir::Pass> createFirCodeGenRewritePass(
34-
CodeGenRewriteOptions Options = CodeGenRewriteOptions{});
35-
3631
/// FirTargetRewritePass options.
3732
struct TargetRewriteOptions {
3833
bool noCharacterConversion{};

flang/include/flang/Tools/CLOptions.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ inline void addCodeGenRewritePass(mlir::PassManager &pm, bool preserveDeclare) {
178178
fir::CodeGenRewriteOptions options;
179179
options.preserveDeclare = preserveDeclare;
180180
addPassConditionally(pm, disableCodeGenRewrite,
181-
[&]() { return fir::createFirCodeGenRewritePass(options); });
181+
[&]() { return fir::createCodeGenRewrite(options); });
182182
}
183183

184184
inline void addTargetRewritePass(mlir::PassManager &pm) {

flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,8 @@ class DummyScopeOpConversion
327327

328328
class CodeGenRewrite : public fir::impl::CodeGenRewriteBase<CodeGenRewrite> {
329329
public:
330-
CodeGenRewrite(fir::CodeGenRewriteOptions opts) : Base(opts) {}
330+
using CodeGenRewriteBase<CodeGenRewrite>::CodeGenRewriteBase;
331+
331332
void runOnOperation() override final {
332333
mlir::ModuleOp mod = getOperation();
333334

@@ -361,11 +362,6 @@ class CodeGenRewrite : public fir::impl::CodeGenRewriteBase<CodeGenRewrite> {
361362

362363
} // namespace
363364

364-
std::unique_ptr<mlir::Pass>
365-
fir::createFirCodeGenRewritePass(fir::CodeGenRewriteOptions Options) {
366-
return std::make_unique<CodeGenRewrite>(Options);
367-
}
368-
369365
void fir::populatePreCGRewritePatterns(mlir::RewritePatternSet &patterns,
370366
bool preserveDeclare) {
371367
patterns.insert<EmboxConversion, ArrayCoorConversion, ReboxConversion,

0 commit comments

Comments
 (0)