summaryrefslogtreecommitdiff
path: root/src/asm2wasm.h
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-09-11 11:39:31 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-09-12 10:36:02 -0700
commit4d0fea95aec72f932efa83a0601b98c177e59a85 (patch)
tree5a6b117a0b3c298862daf87ba18f213b9824f3c6 /src/asm2wasm.h
parentff9757dd827f16e132fdab16bc615ba29f07b415 (diff)
downloadbinaryen-4d0fea95aec72f932efa83a0601b98c177e59a85.tar.gz
binaryen-4d0fea95aec72f932efa83a0601b98c177e59a85.tar.bz2
binaryen-4d0fea95aec72f932efa83a0601b98c177e59a85.zip
thread relooper jumps
Diffstat (limited to 'src/asm2wasm.h')
-rw-r--r--src/asm2wasm.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/asm2wasm.h b/src/asm2wasm.h
index 84db006c4..478a0dd7c 100644
--- a/src/asm2wasm.h
+++ b/src/asm2wasm.h
@@ -522,6 +522,8 @@ void Asm2WasmBuilder::processAsm(Ref ast) {
optimizingBuilder = make_unique<OptimizingIncrementalModuleBuilder>(&wasm, numFunctions, [&](PassRunner& passRunner) {
// run autodrop first, before optimizations
passRunner.add<AutoDrop>();
+ // optimize relooper label variable usage at the wasm level, where it is easy
+ passRunner.add("relooper-jump-threading");
});
}
@@ -802,6 +804,7 @@ void Asm2WasmBuilder::processAsm(Ref ast) {
add->right = parent->builder.makeConst(Literal((int32_t)parent->functionTableStarts[tableName]));
}
};
+
PassRunner passRunner(&wasm);
passRunner.add<FinalizeCalls>(this);
passRunner.add<ReFinalize>(); // FinalizeCalls changes call types, need to percolate