diff options
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rwxr-xr-x | build.sh | 2 | ||||
-rw-r--r-- | src/asm2wasm.h | 7 | ||||
-rw-r--r-- | src/pass.cpp | 4 |
4 files changed, 13 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index f6550d5d9..bc354a236 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,6 +46,8 @@ INSTALL(TARGETS binaryen-shell DESTINATION bin) SET(asm2wasm_SOURCES src/asm2wasm-main.cpp + src/pass.cpp + src/passes/RemoveUnusedNames.cpp src/emscripten-optimizer/parser.cpp src/emscripten-optimizer/simple_ast.cpp src/emscripten-optimizer/optimizer-shared.cpp @@ -2,7 +2,7 @@ echo "building binaryen shell" g++ -O2 -std=c++11 src/binaryen-shell.cpp src/pass.cpp src/passes/LowerIfElse.cpp src/passes/NameManager.cpp src/passes/RemoveImports.cpp src/passes/RemoveUnusedNames.cpp src/support/colors.cpp -o bin/binaryen-shell -Isrc/ -msse2 -mfpmath=sse # use sse for math, avoid x87, necessarily for proper float rounding on 32-bit echo "building asm2wasm" -g++ -O2 -std=c++11 src/asm2wasm-main.cpp src/emscripten-optimizer/parser.cpp src/emscripten-optimizer/simple_ast.cpp src/emscripten-optimizer/optimizer-shared.cpp src/support/colors.cpp -Isrc/ -o bin/asm2wasm +g++ -O2 -std=c++11 src/asm2wasm-main.cpp src/passes/RemoveUnusedNames.cpp src/emscripten-optimizer/parser.cpp src/emscripten-optimizer/simple_ast.cpp src/emscripten-optimizer/optimizer-shared.cpp src/support/colors.cpp -Isrc/ -o bin/asm2wasm echo "building wasm2asm" g++ -O2 -std=c++11 src/wasm2asm-main.cpp src/emscripten-optimizer/parser.cpp src/emscripten-optimizer/simple_ast.cpp src/emscripten-optimizer/optimizer-shared.cpp src/support/colors.cpp -Isrc/ -o bin/wasm2asm echo "building s2wasm" diff --git a/src/asm2wasm.h b/src/asm2wasm.h index e37751a66..ce935666e 100644 --- a/src/asm2wasm.h +++ b/src/asm2wasm.h @@ -27,6 +27,7 @@ #include "mixed_arena.h" #include "shared-constants.h" #include "asm_v_wasm.h" +#include "pass.h" namespace wasm { @@ -1566,6 +1567,12 @@ void Asm2WasmBuilder::optimize() { for (auto pair : wasm.functionsMap) { blockBreakOptimizer.startWalk(pair.second); } + + // Standard passes + + PassRunner passRunner(&allocator); + passRunner.add("remove-unused-names"); + passRunner.run(&wasm); } } // namespace wasm diff --git a/src/pass.cpp b/src/pass.cpp index 59f51df09..1d3c2d67d 100644 --- a/src/pass.cpp +++ b/src/pass.cpp @@ -54,7 +54,9 @@ std::string PassRegistry::getPassDescription(std::string name) { // PassRunner void PassRunner::add(std::string passName) { - passes.push_back(PassRegistry::get()->createPass(passName)); + auto pass = PassRegistry::get()->createPass(passName); + assert(pass); + passes.push_back(pass); } template<class P> |