Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Support new result syntax for if/loop/block (#1047) | Sam Clegg | 2017-06-12 | 2 | -12/+12 |
| | | | | | | Support both syntax formats in input since the old spec tests still need to be parsable. | ||||
* | Optimize/merge duplicate function types (#1041) | Alon Zakai | 2017-06-12 | 2 | -9/+0 |
| | |||||
* | Update binaryen-c/binaryen.js, fixes #1028, fixes #1029 (#1030) | Daniel Wirtz | 2017-06-07 | 6 | -76/+88 |
| | | | This PR adds global variable support (addGlobal, getGlobal, setGlobal), host operations (currentMemory, growMemory), a few utility functions (removeImport, removeExport, getFunctionTypeBySignature with the latter being scheduled for removal once a better alternative is in place) and it introduces an additional argument to specify the result type in BinaryenBlock (effectively breaking the C-API but retaining previous behaviour by introducing the BinaryenUndefined() type for this purpose). Additionally, it enables compilation with exception support in build-js.sh as exceptions are thrown and caught when optimizing endless loops, intentionally resulting in an unreachable opcode. Affected test cases have been updated accordingly. | ||||
* | relooper improvements | Alon Zakai (kripken) | 2017-05-20 | 1 | -0/+3 |
| | |||||
* | merge blocks before and after remove-unused-brs | Alon Zakai (kripken) | 2017-05-10 | 1 | -10/+12 |
| | |||||
* | Extensible name section (#933) | pipcet | 2017-04-13 | 1 | -1/+1 |
| | | | | | | | | | | | | | See https://github.com/WebAssembly/binaryen/issues/914. * extensible name section support: read function names, too * c-api-unused-mem.txt: change expected size to match new name section * * check subsection size matches * print warning for unknown name subsections (including the local section) | ||||
* | New binaryen.js (#922) | Alon Zakai | 2017-03-24 | 2 | -2/+2 |
| | | | New binaryen.js implementation, based on the C API underneath and with a JS-friendly API on top. See docs under docs/ for API details. | ||||
* | finalize interim ifs in relooper, and other if handling issues (#940) | Alon Zakai | 2017-03-13 | 2 | -0/+557 |
| | |||||
* | use a single space for pretty printing of wasts, so massive wasts are less ↵ | Alon Zakai | 2017-03-09 | 6 | -3914/+3914 |
| | | | | unruly (#928) | ||||
* | Fix emitting of unreachable block/if/loop (#911) | Alon Zakai | 2017-02-16 | 1 | -1/+13 |
| | | | | | | | | | | | | | | | | | | | | | | * an unreachable block is one with an unreachable child, plus no breaks * document new difference between binaryen IR and wasm * fix relooper missing finalize * add a bunch of tests * don't assume that test/*.wast files print to themselves exactly; print to from.wast. this allows wast tests with comments in them * emit unreachable blocks as (block .. unreachable) unreachable * if without else and unreachable ifTrue is still not unreachable, it should be none * update wasm.js * cleanups * empty blocks have none type | ||||
* | mark memory as existing when it is created in the C API | Alon Zakai (kripken) | 2017-01-04 | 2 | -0/+194 |
| | |||||
* | add a RemoveUnusedModuleElements pass, and make LegalizeJSInterface create ↵ | Alon Zakai | 2016-12-07 | 2 | -3/+0 |
| | | | | TempRet0 if needed (otherwise we might remove it before we use it) | ||||
* | run remove-unused-functions by default | Alon Zakai | 2016-10-14 | 2 | -447/+0 |
| | |||||
* | Change print order of top-level module components (#751) | Derek Schuff | 2016-10-07 | 5 | -34/+34 |
| | | | | | | | | In wast files, the spec and WABT require imports to appear before any non-import definitions (see also https://github.com/WebAssembly/wabt/issues/152). This patch re-orders visitModule in the wast printer to meet this requirement, and more or less match the order of the binary sections. Also remove extraneous whitespace around table definitions. | ||||
* | Require unique names in binaryen IR (#746) | Alon Zakai | 2016-10-06 | 1 | -1/+1 |
| | |||||
* | Print the name of memory along with size (#720) | Derek Schuff | 2016-09-28 | 5 | -17/+17 |
| | | | | | Otherwise when we export it as "$0" it's an undefined name. The spec interpreter actually rejects this, although I think it's intended to work, given the tests in export.wast. wabt also accepts it. | ||||
* | Update binary encoding for block, loop, and if signatures (#711) | Derek Schuff | 2016-09-27 | 2 | -6/+6 |
| | | | | | | Also updates the tests and has a few other changes for binary 0xc: Update nop/unrechable opcodes Fix for "name" section | ||||
* | optimize if(const) | Alon Zakai | 2016-09-24 | 2 | -120/+24 |
| | |||||
* | precompute void expressions too | Alon Zakai | 2016-09-24 | 2 | -60/+0 |
| | |||||
* | autoDrop fix | Alon Zakai | 2016-09-23 | 2 | -9/+15 |
| | |||||
* | br_if returns its value | Alon Zakai | 2016-09-16 | 2 | -9/+15 |
| | |||||
* | block signatures | Alon Zakai | 2016-09-16 | 2 | -6/+6 |
| | |||||
* | call_import changes: no more call_import, shared index space with functions | Alon Zakai | 2016-09-16 | 4 | -256/+256 |
| | |||||
* | optimize if-else to br_if when in a block | Alon Zakai | 2016-09-10 | 3 | -46/+40 |
| | |||||
* | autodrop if body if no else | Alon Zakai | 2016-09-07 | 2 | -3/+9 |
| | |||||
* | use eqz as an optimization | Alon Zakai | 2016-09-07 | 2 | -43/+25 |
| | |||||
* | new validation checks for upcoming spec tests | Alon Zakai | 2016-09-07 | 3 | -5/+5 |
| | |||||
* | new export syntax in spec repo | Alon Zakai | 2016-09-07 | 4 | -10/+10 |
| | |||||
* | new import syntax in spec repo | Alon Zakai | 2016-09-07 | 4 | -14/+14 |
| | |||||
* | export kinds | Alon Zakai | 2016-09-07 | 4 | -7/+7 |
| | |||||
* | update tests | Alon Zakai | 2016-09-07 | 1 | -4/+4 |
| | |||||
* | loops no longer have an out label and other upstream loop updates | Alon Zakai | 2016-09-07 | 3 | -149/+143 |
| | |||||
* | call_indirect now has the target at the end | Alon Zakai | 2016-09-07 | 2 | -3/+3 |
| | |||||
* | add drop and tee expressions | Alon Zakai | 2016-09-07 | 7 | -1294/+1919 |
| | |||||
* | offset support in table | Alon Zakai | 2016-08-15 | 2 | -3/+3 |
| | |||||
* | support function table initial and max sizes, and new printing format | Alon Zakai | 2016-08-12 | 2 | -3/+6 |
| | |||||
* | support expressions in segment offsets | Alon Zakai | 2016-08-12 | 3 | -13/+11 |
| | |||||
* | more RemoveUnusedName opts: merge names when possible, and do block/loop ↵ | Alon Zakai | 2016-07-20 | 2 | -87/+75 |
| | | | | merging based on their names | ||||
* | avoid label variable usage in relooper for forward branches, just use a ↵ | Alon Zakai | 2016-07-20 | 4 | -977/+841 |
| | | | | stack of blocks for them. after this change, only irreducible control flow should cause label variable usage | ||||
* | add more relooper testing and improve existing | Alon Zakai | 2016-07-20 | 7 | -342/+2562 |
| | |||||
* | Don't emit empty array literals in trace output (#631) | Alon Zakai | 2016-07-13 | 1 | -39/+39 |
| | | | | * don't emit empty array literals in trace output | ||||
* | relooper tracing + fixes | Alon Zakai | 2016-07-12 | 3 | -236/+1369 |
| | |||||
* | allow multiple traces | Alon Zakai | 2016-07-12 | 2 | -9/+6 |
| | |||||
* | add a tracing option to the c api, which logs out a runnable program from c ↵ | Alon Zakai | 2016-07-12 | 4 | -0/+1070 |
| | | | | api calls | ||||
* | add a relooper test for duff's device, showing irreducible control flow and ↵ | Alon Zakai | 2016-07-07 | 2 | -0/+106 |
| | | | | helper var use | ||||
* | validate set_local types against the function #618 (#620) | Alon Zakai | 2016-07-06 | 2 | -1/+33 |
| | |||||
* | quote names in s-format that need it | Alon Zakai | 2016-07-05 | 2 | -7/+7 |
| | |||||
* | Relooper switch support (#617) | Alon Zakai | 2016-07-02 | 2 | -2/+52 |
| | | | | | | * support switches in relooper and c api * update relooper fuzzer for switches | ||||
* | add c api method to interpret a module, calling its start method (#601) | Alon Zakai | 2016-06-25 | 2 | -0/+34 |
| | |||||
* | finalize blocks properly in relooper (#600) | Alon Zakai | 2016-06-24 | 2 | -0/+25 |
| |