forked from OSchip/llvm-project
[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:
parent
750ee8d56d
commit
ee0166cfc5
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue