From 26cf3235f9f73a8f187fa75f274bc517a65c3fe9 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Mon, 31 Oct 2016 17:50:42 -0700 Subject: add a pass to optimize memory segments, and pack memory in asm2wasm --- src/passes/pass.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/passes/pass.cpp') 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() { -- cgit v1.2.3