add binaryen fiddles for indirect to direct call optimization

This commit is contained in:
dcode
2019-03-31 15:42:25 +02:00
parent 3e3c393856
commit c4a57025d2
2 changed files with 48 additions and 0 deletions

View File

@ -0,0 +1,22 @@
var binaryen = require("binaryen");
var mod = new binaryen.Module();
var ftype = mod.addFunctionType("v", binaryen.none, []);
mod.addFunction("callee", ftype, [], mod.block(null, [
]));
mod.setFunctionTable(1, 1, [ "callee" ]);
mod.addFunction("caller", ftype, [], mod.block(null, [
mod.call_indirect(mod.i32.const(0), [], "v"),
]));
mod.addFunctionExport("caller", "main");
binaryen.setOptimizeLevel(4);
binaryen.setShrinkLevel(0);
binaryen.setDebugInfo(false);
mod.optimize();
if (!mod.validate())
console.log("-> does not validate");
console.log(mod.emitText());