diff options
author | Slava Zakharin <szakharin@nvidia.com> | 2022-07-14 16:50:41 -0700 |
---|---|---|
committer | Slava Zakharin <szakharin@nvidia.com> | 2022-07-20 16:33:52 -0700 |
commit | 4fbd1d6c872e8228f23a6e13914222af40ca6461 (patch) | |
tree | 15f1dd1bdeb84e323d1e9c63ca2667df387f41ed /flang/tools | |
parent | ed344c88774a46aa1f1eed6b7e36f42e73031c69 (diff) | |
download | llvm-4fbd1d6c872e8228f23a6e13914222af40ca6461.tar.gz |
[flang] Run algebraic simplification optimization pass.
Flang algebraic simplification pass will run algebraic simplification
rewrite patterns for Math/Complex/etc. dialects. It is enabled
under opt-for-speed optimization levels (i.e. for O1/O2/O3; Os/Oz will not
enable it).
With this change the FIR/MLIR optimization pipeline becomes affected
by the -O* optimization level switches. Until now these switches
only affected the middle-end and back-end.
Differential Revision: https://reviews.llvm.org/D130035
Diffstat (limited to 'flang/tools')
-rw-r--r-- | flang/tools/bbc/bbc.cpp | 5 | ||||
-rw-r--r-- | flang/tools/tco/tco.cpp | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/flang/tools/bbc/bbc.cpp b/flang/tools/bbc/bbc.cpp index cb8c78427a79..56ca8f79afee 100644 --- a/flang/tools/bbc/bbc.cpp +++ b/flang/tools/bbc/bbc.cpp @@ -47,6 +47,7 @@ #include "mlir/Pass/PassRegistry.h" #include "mlir/Transforms/GreedyPatternRewriteDriver.h" #include "mlir/Transforms/Passes.h" +#include "llvm/Passes/OptimizationLevel.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/ErrorOr.h" #include "llvm/Support/FileSystem.h" @@ -255,8 +256,8 @@ static mlir::LogicalResult convertFortranSourceToMLIR( // run the default canned pipeline pm.addPass(std::make_unique<Fortran::lower::VerifierPass>()); - // Add default optimizer pass pipeline. - fir::createDefaultFIROptimizerPassPipeline(pm); + // Add O2 optimizer pass pipeline. + fir::createDefaultFIROptimizerPassPipeline(pm, llvm::OptimizationLevel::O2); } if (mlir::succeeded(pm.run(mlirModule))) { diff --git a/flang/tools/tco/tco.cpp b/flang/tools/tco/tco.cpp index 0c9e2f528a3f..5fe0d8114742 100644 --- a/flang/tools/tco/tco.cpp +++ b/flang/tools/tco/tco.cpp @@ -24,6 +24,7 @@ #include "mlir/Pass/Pass.h" #include "mlir/Pass/PassManager.h" #include "mlir/Transforms/Passes.h" +#include "llvm/Passes/OptimizationLevel.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/ErrorOr.h" #include "llvm/Support/FileSystem.h" @@ -111,7 +112,8 @@ compileFIR(const mlir::PassPipelineCLParser &passPipeline) { if (mlir::failed(passPipeline.addToPipeline(pm, errorHandler))) return mlir::failure(); } else { - fir::createMLIRToLLVMPassPipeline(pm); + // Run tco with O2 by default. + fir::createMLIRToLLVMPassPipeline(pm, llvm::OptimizationLevel::O2); fir::addLLVMDialectToLLVMPass(pm, out.os()); } |