summaryrefslogtreecommitdiff
path: root/src/passes/pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/pass.cpp')
-rw-r--r--src/passes/pass.cpp6
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");
}