[flang-commits] [flang] [flang][CodeGen][NFC] Reduce PreCGRewrite pass boilerplate (PR #94329)
via flang-commits
flang-commits at lists.llvm.org
Tue Jun 4 02:48:01 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-flang-fir-hlfir
Author: Tom Eccles (tblah)
<details>
<summary>Changes</summary>
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.
---
Full diff: https://github.com/llvm/llvm-project/pull/94329.diff
4 Files Affected:
- (modified) flang/include/flang/Optimizer/CodeGen/CGPasses.td (-1)
- (modified) flang/include/flang/Optimizer/CodeGen/CodeGen.h (-5)
- (modified) flang/include/flang/Tools/CLOptions.inc (+1-1)
- (modified) flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp (+2-6)
``````````diff
diff --git a/flang/include/flang/Optimizer/CodeGen/CGPasses.td b/flang/include/flang/Optimizer/CodeGen/CGPasses.td
index d23f07a5c8f11..df042187b2a71 100644
--- a/flang/include/flang/Optimizer/CodeGen/CGPasses.td
+++ b/flang/include/flang/Optimizer/CodeGen/CGPasses.td
@@ -43,7 +43,6 @@ def CodeGenRewrite : Pass<"cg-rewrite", "mlir::ModuleOp"> {
let description = [{
Fuse specific subgraphs into single Ops for code generation.
}];
- let constructor = "::fir::createFirCodeGenRewritePass()";
let dependentDialects = [
"fir::FIROpsDialect", "fir::FIRCodeGenDialect"
];
diff --git a/flang/include/flang/Optimizer/CodeGen/CodeGen.h b/flang/include/flang/Optimizer/CodeGen/CodeGen.h
index b2773abbd8411..3063bf1c0e020 100644
--- a/flang/include/flang/Optimizer/CodeGen/CodeGen.h
+++ b/flang/include/flang/Optimizer/CodeGen/CodeGen.h
@@ -28,11 +28,6 @@ struct NameUniquer;
#define GEN_PASS_DECL_BOXEDPROCEDUREPASS
#include "flang/Optimizer/CodeGen/CGPasses.h.inc"
-/// Prerequiste pass for code gen. Perform intermediate rewrites to perform
-/// the code gen (to LLVM-IR dialect) conversion.
-std::unique_ptr<mlir::Pass> createFirCodeGenRewritePass(
- CodeGenRewriteOptions Options = CodeGenRewriteOptions{});
-
/// FirTargetRewritePass options.
struct TargetRewriteOptions {
bool noCharacterConversion{};
diff --git a/flang/include/flang/Tools/CLOptions.inc b/flang/include/flang/Tools/CLOptions.inc
index cca3344da02a1..fb3ec75d4078a 100644
--- a/flang/include/flang/Tools/CLOptions.inc
+++ b/flang/include/flang/Tools/CLOptions.inc
@@ -178,7 +178,7 @@ inline void addCodeGenRewritePass(mlir::PassManager &pm, bool preserveDeclare) {
fir::CodeGenRewriteOptions options;
options.preserveDeclare = preserveDeclare;
addPassConditionally(pm, disableCodeGenRewrite,
- [&]() { return fir::createFirCodeGenRewritePass(options); });
+ [&]() { return fir::createCodeGenRewrite(options); });
}
inline void addTargetRewritePass(mlir::PassManager &pm) {
diff --git a/flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp b/flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp
index c54a7457db761..6a0cd5ef4b34e 100644
--- a/flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp
+++ b/flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp
@@ -327,7 +327,8 @@ class DummyScopeOpConversion
class CodeGenRewrite : public fir::impl::CodeGenRewriteBase<CodeGenRewrite> {
public:
- CodeGenRewrite(fir::CodeGenRewriteOptions opts) : Base(opts) {}
+ using CodeGenRewriteBase<CodeGenRewrite>::CodeGenRewriteBase;
+
void runOnOperation() override final {
mlir::ModuleOp mod = getOperation();
@@ -361,11 +362,6 @@ class CodeGenRewrite : public fir::impl::CodeGenRewriteBase<CodeGenRewrite> {
} // namespace
-std::unique_ptr<mlir::Pass>
-fir::createFirCodeGenRewritePass(fir::CodeGenRewriteOptions Options) {
- return std::make_unique<CodeGenRewrite>(Options);
-}
-
void fir::populatePreCGRewritePatterns(mlir::RewritePatternSet &patterns,
bool preserveDeclare) {
patterns.insert<EmboxConversion, ArrayCoorConversion, ReboxConversion,
``````````
</details>
https://github.com/llvm/llvm-project/pull/94329
More information about the flang-commits
mailing list