[flang][NFC] move addPass* template utilities to header (#213288)
Move the addPass* template utilities to the header so external pipelines can use them.
This commit is contained in:
parent
56b45895fa
commit
f8d6aaf8ca
2 changed files with 18 additions and 23 deletions
|
|
@ -31,6 +31,8 @@
|
|||
|
||||
namespace fir {
|
||||
|
||||
class GlobalOp;
|
||||
|
||||
using PassConstructor = std::unique_ptr<mlir::Pass>();
|
||||
|
||||
template <typename F, typename OP>
|
||||
|
|
@ -61,11 +63,25 @@ void addNestedPassConditionally(mlir::PassManager &pm,
|
|||
}
|
||||
|
||||
template <typename F>
|
||||
void addNestedPassToAllTopLevelOperations(mlir::PassManager &pm, F ctor);
|
||||
void addNestedPassToAllTopLevelOperations(mlir::PassManager &pm, F ctor) {
|
||||
addNestedPassToOps<F, mlir::func::FuncOp, mlir::omp::DeclareMapperOp,
|
||||
mlir::omp::DeclareReductionOp, mlir::omp::PrivateClauseOp,
|
||||
fir::GlobalOp>(pm, ctor);
|
||||
}
|
||||
|
||||
template <typename F>
|
||||
void addNestedPassToAllTopLevelOperationsConditionally(
|
||||
mlir::PassManager &pm, llvm::cl::opt<bool> &disabled, F ctor);
|
||||
mlir::PassManager &pm, llvm::cl::opt<bool> &disabled, F ctor) {
|
||||
if (!disabled)
|
||||
addNestedPassToAllTopLevelOperations<F>(pm, ctor);
|
||||
}
|
||||
|
||||
template <typename F>
|
||||
void addPassToGPUModuleOperations(mlir::PassManager &pm, F ctor) {
|
||||
mlir::OpPassManager &nestPM = pm.nest<mlir::gpu::GPUModuleOp>();
|
||||
nestPM.addNestedPass<mlir::func::FuncOp>(ctor());
|
||||
nestPM.addNestedPass<mlir::gpu::GPUFuncOp>(ctor());
|
||||
}
|
||||
|
||||
/// Add MLIR Canonicalizer pass with region simplification disabled.
|
||||
/// FIR does not support the promotion of some SSA value to block arguments (or
|
||||
|
|
|
|||
|
|
@ -29,27 +29,6 @@ static llvm::cl::opt<bool> disableArgumentFakeUse("disable-argument-fake-use",
|
|||
|
||||
namespace fir {
|
||||
|
||||
template <typename F>
|
||||
void addNestedPassToAllTopLevelOperations(mlir::PassManager &pm, F ctor) {
|
||||
addNestedPassToOps<F, mlir::func::FuncOp, mlir::omp::DeclareMapperOp,
|
||||
mlir::omp::DeclareReductionOp, mlir::omp::PrivateClauseOp,
|
||||
fir::GlobalOp>(pm, ctor);
|
||||
}
|
||||
|
||||
template <typename F>
|
||||
void addPassToGPUModuleOperations(mlir::PassManager &pm, F ctor) {
|
||||
mlir::OpPassManager &nestPM = pm.nest<mlir::gpu::GPUModuleOp>();
|
||||
nestPM.addNestedPass<mlir::func::FuncOp>(ctor());
|
||||
nestPM.addNestedPass<mlir::gpu::GPUFuncOp>(ctor());
|
||||
}
|
||||
|
||||
template <typename F>
|
||||
void addNestedPassToAllTopLevelOperationsConditionally(
|
||||
mlir::PassManager &pm, llvm::cl::opt<bool> &disabled, F ctor) {
|
||||
if (!disabled)
|
||||
addNestedPassToAllTopLevelOperations<F>(pm, ctor);
|
||||
}
|
||||
|
||||
void addCanonicalizerPassWithoutRegionSimplification(mlir::OpPassManager &pm) {
|
||||
mlir::GreedyRewriteConfig config;
|
||||
config.setRegionSimplificationLevel(
|
||||
|
|
|
|||
Loading…
Reference in a new issue