Rework loop compilation / flows (#644)

This commit is contained in:
Daniel Wirtz
2019-06-11 12:52:16 +02:00
committed by GitHub
parent 420812f5b2
commit 40dac8269d
125 changed files with 52818 additions and 61256 deletions

View File

@ -0,0 +1,25 @@
var binaryen = require("binaryen");
var mod = new binaryen.Module();
var funcType = mod.addFunctionType("ii", binaryen.i32, [ binaryen.i32 ]);
mod.addFunction("0", funcType, [],
mod.block(null, [
mod.loop("continue",
mod.block(null, [
mod.if(
mod.local.get(0, binaryen.i32),
mod.return(mod.i32.const(1)),
mod.return(mod.i32.const(2))
),
mod.unreachable()
])
),
mod.unreachable()
], binaryen.i32)
);
mod.addExport("0", "0");
if (!mod.validate())
console.log("-> does not validate");
console.log(mod.emitText());
console.log(mod.emitStackIR(/*true*/)); // optimize-stack-ir fixes this