[flang] Enable SimplifyIntrinsics pass in driver.

The pass is enabled for O1/O2/O3 optlevels now.

Differential Revision: https://reviews.llvm.org/D132069
This commit is contained in:
Slava Zakharin 2022-08-17 13:00:57 -07:00
parent 750ee8d56d
commit ee0166cfc5
4 changed files with 7 additions and 2 deletions

View File

@ -165,9 +165,11 @@ inline void createDefaultFIROptimizerPassPipeline(
pm.addNestedPass<mlir::func::FuncOp>(fir::createCharacterConversionPass());
pm.addPass(mlir::createCanonicalizerPass(config));
pm.addPass(fir::createSimplifyRegionLitePass());
// Algebraic simplifications may increase code size.
if (optLevel.isOptimizingForSpeed())
if (optLevel.isOptimizingForSpeed()) {
// These passes may increase code size.
pm.addPass(fir::createSimplifyIntrinsicsPass());
pm.addPass(fir::createAlgebraicSimplificationPass(config));
}
pm.addPass(mlir::createCSEPass());
fir::addMemoryAllocationOpt(pm);

View File

@ -23,6 +23,7 @@ end program
! CHECK-NEXT: Canonicalizer
! CHECK-NEXT: SimplifyRegionLite
! CHECK-NEXT: SimplifyIntrinsics
! CHECK-NEXT: AlgebraicSimplification
! CHECK-NEXT: CSE
! CHECK-NEXT: (S) 0 num-cse'd - Number of operations CSE'd

View File

@ -26,6 +26,7 @@ end program
! ALL-NEXT: Canonicalizer
! ALL-NEXT: SimplifyRegionLite
! O2-NEXT: SimplifyIntrinsics
! O2-NEXT: AlgebraicSimplification
! ALL-NEXT: CSE
! ALL-NEXT: (S) 0 num-cse'd - Number of operations CSE'd

View File

@ -26,6 +26,7 @@ func.func @_QQmain() {
// PASSES-NEXT: Canonicalizer
// PASSES-NEXT: SimplifyRegionLite
// PASSES-NEXT: SimplifyIntrinsics
// PASSES-NEXT: AlgebraicSimplification
// PASSES-NEXT: CSE
// PASSES-NEXT: (S) 0 num-cse'd - Number of operations CSE'd