summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai (kripken) <alonzakai@gmail.com>2018-12-02 08:22:33 -0800
committerAlon Zakai <alonzakai@gmail.com>2018-12-04 10:14:29 -0800
commitb4badb815ec844e438a05d501eafb6bb99383bc6 (patch)
treeb1f16bc9c644b48e7c7f9fb226bb50d7b5be3f6a /src
parentf5b8221e9759c37ef44158c2d2858dcee51b6c1f (diff)
downloadbinaryen-b4badb815ec844e438a05d501eafb6bb99383bc6.tar.gz
binaryen-b4badb815ec844e438a05d501eafb6bb99383bc6.tar.bz2
binaryen-b4badb815ec844e438a05d501eafb6bb99383bc6.zip
Run coalesce-locals after the final simplify-locals.
We now emit more sets and tees of if-elses from simplify-locals, and coalesce-locals is necessary to remove them if they are ineffectual, that is, if no get will read them.
Diffstat (limited to 'src')
-rw-r--r--src/passes/pass.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp
index e89fed83f..c42a3d144 100644
--- a/src/passes/pass.cpp
+++ b/src/passes/pass.cpp
@@ -180,8 +180,11 @@ void PassRunner::addDefaultFunctionOptimizationPasses() {
}
add("coalesce-locals");
add("simplify-locals");
- add("vacuum"); // previous pass creates garbage
+ add("vacuum");
+ add("reorder-locals");
+ add("coalesce-locals");
add("reorder-locals");
+ add("vacuum");
if (options.optimizeLevel >= 3 || options.shrinkLevel >= 1) {
add("code-folding");
}