summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2018-06-04 15:31:18 -0700
committerGitHub <noreply@github.com>2018-06-04 15:31:18 -0700
commitbfae82fc4107a8115b41db4a2bd3d9204a92ad16 (patch)
treef6101330c153057113c7e34e16dc4ed245b73850 /src
parent240c6bbe07602ccfcf094e7e47ff7a3f3635229b (diff)
downloadbinaryen-bfae82fc4107a8115b41db4a2bd3d9204a92ad16.tar.gz
binaryen-bfae82fc4107a8115b41db4a2bd3d9204a92ad16.tar.bz2
binaryen-bfae82fc4107a8115b41db4a2bd3d9204a92ad16.zip
run precompute-propagate early, when we would run it also late, as it is helpful in both positions on general code (#1581)
Diffstat (limited to 'src')
-rw-r--r--src/passes/pass.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp
index 383752198..6c2aa3731 100644
--- a/src/passes/pass.cpp
+++ b/src/passes/pass.cpp
@@ -141,7 +141,12 @@ void PassRunner::addDefaultFunctionOptimizationPasses() {
if (options.optimizeLevel >= 2 || options.shrinkLevel >= 2) {
add("pick-load-signs");
}
- add("precompute");
+ // early propagation
+ if (options.optimizeLevel >= 3 || options.shrinkLevel >= 2) {
+ add("precompute-propagate");
+ } else {
+ add("precompute");
+ }
if (options.optimizeLevel >= 2 || options.shrinkLevel >= 2) {
add("code-pushing");
}
@@ -164,7 +169,7 @@ void PassRunner::addDefaultFunctionOptimizationPasses() {
add("remove-unused-brs"); // coalesce-locals opens opportunities for optimizations
add("merge-blocks"); // clean up remove-unused-brs new blocks
add("optimize-instructions");
- // if we are willing to work hard, also propagate
+ // late propagation
if (options.optimizeLevel >= 3 || options.shrinkLevel >= 2) {
add("precompute-propagate");
} else {