diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-11-06 11:07:08 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-06 11:07:08 -0800 |
commit | 033b5e161e677173bda01aad9e6850545b93c97e (patch) | |
tree | 4984374220181ca61044bd7d8849aaec2084c1ec /src/passes/pass.cpp | |
parent | 5af71eea09abfa9078c62633cea89b121ec4ec08 (diff) | |
parent | 57d0a549d715a25b471c8913c3013fc407eceea6 (diff) | |
download | binaryen-033b5e161e677173bda01aad9e6850545b93c97e.tar.gz binaryen-033b5e161e677173bda01aad9e6850545b93c97e.tar.bz2 binaryen-033b5e161e677173bda01aad9e6850545b93c97e.zip |
Merge pull request #826 from WebAssembly/opts
A few minor optimizations
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 c307fea46..20e002f4b 100644 --- a/src/passes/pass.cpp +++ b/src/passes/pass.cpp @@ -91,6 +91,9 @@ void PassRegistry::registerPasses() { registerPass("reorder-functions", "sorts functions by access frequency", createReorderFunctionsPass); registerPass("reorder-locals", "sorts locals by access frequency", createReorderLocalsPass); registerPass("simplify-locals", "miscellaneous locals-related optimizations", createSimplifyLocalsPass); + registerPass("simplify-locals-notee", "miscellaneous locals-related optimizations", createSimplifyLocalsNoTeePass); + registerPass("simplify-locals-nostructure", "miscellaneous locals-related optimizations", createSimplifyLocalsNoStructurePass); + registerPass("simplify-locals-notee-nostructure", "miscellaneous locals-related optimizations", createSimplifyLocalsNoTeeNoStructurePass); registerPass("vacuum", "removes obviously unneeded code", createVacuumPass); registerPass("precompute", "computes compile-time evaluatable expressions", createPrecomputePass); // registerPass("lower-i64", "lowers i64 into pairs of i32s", createLowerInt64Pass); @@ -113,13 +116,15 @@ void PassRunner::addDefaultFunctionOptimizationPasses() { if (options.optimizeLevel >= 2 || options.shrinkLevel >= 2) { add("code-pushing"); } - add("simplify-locals"); + add("simplify-locals-nostructure"); // don't create if/block return values yet, as coalesce can remove copies that that could inhibit add("vacuum"); // previous pass creates garbage add("reorder-locals"); - add("remove-unused-brs"); // simplify-locals opens opportunities for phi optimizations + add("remove-unused-brs"); // simplify-locals opens opportunities for optimizations add("coalesce-locals"); + add("simplify-locals"); add("vacuum"); // previous pass creates garbage add("reorder-locals"); + add("remove-unused-brs"); // coalesce-locals opens opportunities for optimizations add("merge-blocks"); add("optimize-instructions"); add("precompute"); |