diff options
author | Alon Zakai <alonzakai@gmail.com> | 2018-06-04 15:31:18 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-04 15:31:18 -0700 |
commit | bfae82fc4107a8115b41db4a2bd3d9204a92ad16 (patch) | |
tree | f6101330c153057113c7e34e16dc4ed245b73850 /src/passes/pass.cpp | |
parent | 240c6bbe07602ccfcf094e7e47ff7a3f3635229b (diff) | |
download | binaryen-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/passes/pass.cpp')
-rw-r--r-- | src/passes/pass.cpp | 9 |
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 { |