summaryrefslogtreecommitdiff
path: root/src/passes/pass.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-10-31 17:50:42 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-11-01 11:25:52 -0700
commit26cf3235f9f73a8f187fa75f274bc517a65c3fe9 (patch)
treefbbd11d7014c9bf9fb4cef688f75fdf65c8e645e /src/passes/pass.cpp
parentc8eccc4ceb1d538fc394578c23ba87bb50835b3f (diff)
downloadbinaryen-26cf3235f9f73a8f187fa75f274bc517a65c3fe9.tar.gz
binaryen-26cf3235f9f73a8f187fa75f274bc517a65c3fe9.tar.bz2
binaryen-26cf3235f9f73a8f187fa75f274bc517a65c3fe9.zip
add a pass to optimize memory segments, and pack memory in asm2wasm
Diffstat (limited to 'src/passes/pass.cpp')
-rw-r--r--src/passes/pass.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp
index c8704db89..c307fea46 100644
--- a/src/passes/pass.cpp
+++ b/src/passes/pass.cpp
@@ -71,6 +71,7 @@ void PassRegistry::registerPasses() {
registerPass("extract-function", "leaves just one function (useful for debugging)", createExtractFunctionPass);
registerPass("inlining", "inlines functions (currently only ones with a single use)", createInliningPass);
registerPass("legalize-js-interface", "legalizes i64 types on the import/export boundary", createLegalizeJSInterfacePass);
+ registerPass("memory-packing", "packs memory into separate segments, skipping zeros", createMemoryPackingPass);
registerPass("merge-blocks", "merges blocks to their parents", createMergeBlocksPass);
registerPass("metrics", "reports metrics", createMetricsPass);
registerPass("nm", "name list", createNameListPass);
@@ -100,6 +101,7 @@ void PassRunner::addDefaultOptimizationPasses() {
addDefaultFunctionOptimizationPasses();
add("duplicate-function-elimination"); // optimizations show more functions as duplicate
add("remove-unused-functions");
+ add("memory-packing");
}
void PassRunner::addDefaultFunctionOptimizationPasses() {
@@ -127,6 +129,7 @@ void PassRunner::addDefaultFunctionOptimizationPasses() {
void PassRunner::addDefaultGlobalOptimizationPasses() {
add("duplicate-function-elimination");
add("remove-unused-functions");
+ add("memory-packing");
}
void PassRunner::run() {