From e593294fceb9110dde60354d37e8907525a94617 Mon Sep 17 00:00:00 2001 From: Tom Eccles Date: Tue, 28 May 2024 13:14:59 +0000 Subject: [PATCH] [flang][Transforms][NFC] Remove boilerplate from vscale range pass Use tablegen to generate the pass constructor. This pass is supposed to add function attributes so it does not need to operate on other top level operations. --- flang/include/flang/Optimizer/Transforms/Passes.h | 1 + flang/include/flang/Optimizer/Transforms/Passes.td | 1 - flang/include/flang/Tools/CLOptions.inc | 2 +- flang/lib/Optimizer/Transforms/VScaleAttr.cpp | 12 ------------ 4 files changed, 2 insertions(+), 14 deletions(-) diff --git a/flang/include/flang/Optimizer/Transforms/Passes.h b/flang/include/flang/Optimizer/Transforms/Passes.h index 2d43f4d4c55b6..4e978e6c9cdec 100644 --- a/flang/include/flang/Optimizer/Transforms/Passes.h +++ b/flang/include/flang/Optimizer/Transforms/Passes.h @@ -54,6 +54,7 @@ namespace fir { #define GEN_PASS_DECL_OMPMAPINFOFINALIZATIONPASS #define GEN_PASS_DECL_OMPMARKDECLARETARGETPASS #define GEN_PASS_DECL_OMPFUNCTIONFILTERING +#define GEN_PASS_DECL_VSCALEATTR #include "flang/Optimizer/Transforms/Passes.h.inc" std::unique_ptr createAffineDemotionPass(); diff --git a/flang/include/flang/Optimizer/Transforms/Passes.td b/flang/include/flang/Optimizer/Transforms/Passes.td index cac590a8da003..4e281e2846c56 100644 --- a/flang/include/flang/Optimizer/Transforms/Passes.td +++ b/flang/include/flang/Optimizer/Transforms/Passes.td @@ -359,7 +359,6 @@ def VScaleAttr : Pass<"vscale-attr", "mlir::func::FuncOp"> { "std::pair", /*default=*/"std::pair{}", "vector scale range">, ]; - let constructor = "::fir::createVScaleAttrPass()"; } def FunctionAttr : Pass<"function-attr", "mlir::func::FuncOp"> { diff --git a/flang/include/flang/Tools/CLOptions.inc b/flang/include/flang/Tools/CLOptions.inc index d0399d65f5655..528c51d8c1c44 100644 --- a/flang/include/flang/Tools/CLOptions.inc +++ b/flang/include/flang/Tools/CLOptions.inc @@ -369,7 +369,7 @@ inline void createDefaultFIRCodeGenPassPipeline(mlir::PassManager &pm, fir::createDebugPasses(pm, config.DebugInfo, config.OptLevel, inputFilename); if (config.VScaleMin != 0) - pm.addPass(fir::createVScaleAttrPass({config.VScaleMin, config.VScaleMax})); + pm.addPass(fir::createVScaleAttr({{config.VScaleMin, config.VScaleMax}})); // Add function attributes fir::FunctionAttrTypes functionAttrs; diff --git a/flang/lib/Optimizer/Transforms/VScaleAttr.cpp b/flang/lib/Optimizer/Transforms/VScaleAttr.cpp index 601a937de37be..d311167c58b4d 100644 --- a/flang/lib/Optimizer/Transforms/VScaleAttr.cpp +++ b/flang/lib/Optimizer/Transforms/VScaleAttr.cpp @@ -38,7 +38,6 @@ #include namespace fir { -#define GEN_PASS_DECL_VSCALEATTR #define GEN_PASS_DEF_VSCALEATTR #include "flang/Optimizer/Transforms/Passes.h.inc" } // namespace fir @@ -77,14 +76,3 @@ void VScaleAttrPass::runOnOperation() { LLVM_DEBUG(llvm::dbgs() << "=== End " DEBUG_TYPE " ===\n"); } - -std::unique_ptr -fir::createVScaleAttrPass(std::pair vscaleAttr) { - VScaleAttrOptions opts; - opts.vscaleRange = vscaleAttr; - return std::make_unique(opts); -} - -std::unique_ptr fir::createVScaleAttrPass() { - return std::make_unique(); -}