diff options
Diffstat (limited to 'src/passes/pass.cpp')
-rw-r--r-- | src/passes/pass.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp index 2f917d779..c0354524d 100644 --- a/src/passes/pass.cpp +++ b/src/passes/pass.cpp @@ -132,6 +132,12 @@ void PassRunner::addDefaultOptimizationPasses() { } void PassRunner::addDefaultFunctionOptimizationPasses() { + // if we are willing to work very very hard, flatten the IR and do opts + // that depend on flat IR + if (options.optimizeLevel >= 4) { + add("flatten"); + add("local-cse"); + } if (!options.debugInfo) { // debug info must be preserved, do not dce it add("dce"); } |