Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Dot s block signatures (#747) | jgravelle-google | 2016-10-06 | 1254 | -4217/+4420 |
| | | | | | | | | | | * Support block signatures in s2wasm's .s format * Autogenerate tests * update cfg-stackify tests * Remove conflict files | ||||
* | Update for removal of loop's bottom label from LLVM (#750) | Derek Schuff | 2016-10-06 | 1249 | -5418/+5651 |
| | | | | Corresponds to LLVM change https://reviews.llvm.org/D25122, r283502 | ||||
* | Update s2wasm for removal of store results (#749) | Derek Schuff | 2016-10-06 | 1298 | -11549/+12279 |
| | | | | Corresponds to LLVM change https://reviews.llvm.org/D25122 | ||||
* | Remove hard-coded paths from LLVM test auto-generator (#748) | Derek Schuff | 2016-10-06 | 1 | -6/+11 |
| | | | | Use the command-line instead. Also update the blacklist to handle new tests. | ||||
* | DCE bugfix (#736) | Alon Zakai | 2016-10-04 | 4 | -0/+94 |
| | | | | | * fix a dce bug where it is invalid to truncate a block if it leaves a final element with a bad type (wasm doesn't always allow removing unreachable code) * add wast pass fuzzer | ||||
* | handle ifs with an i64 condition #741 (#742) | Alon Zakai | 2016-10-04 | 4 | -4/+12 |
| | |||||
* | Update i64 stores for 0xc (#731) | jgravelle-google | 2016-10-04 | 6 | -9/+26 |
| | | | | | | | | | | * Update i64 stores for 0xc * Update autogenerated LLVM tests * Update known torture test failures * Add i64.store32 test to unit.wast | ||||
* | don't create an unnecessary duplicate block in asm2wasm switches, when there ↵ | Alon Zakai | 2016-10-03 | 8 | -9876/+9836 |
| | | | | isn't a default (#734) | ||||
* | wasm-only additions: i32.cttz, copysign, popcnt (#729) | Alon Zakai | 2016-10-02 | 5 | -1/+88 |
| | |||||
* | fix vacuum big where we changed an unreachable node to a nop (#728) | Alon Zakai | 2016-10-02 | 2 | -0/+19 |
| | |||||
* | More wasm-only opts (#727) | Alon Zakai | 2016-10-02 | 5 | -34/+757 |
| | | | | | | * wasm-only loads and stores * wasm-only 32-bit bitcasts | ||||
* | asm2wasm i64 support (#723) | Alon Zakai | 2016-09-30 | 10 | -0/+1960 |
| | | | | | | | | | | | | * support i64 intrinsics from fastcomp, adding --wasm-only flag * refactor callImport logic in asm2wasm to avoid recomputing wasm types again * legalize illegal i64 params in exports and imports * do safe i64 binary ops depending on precision * fix addVar, only assert on names if we are using a name | ||||
* | Make the linker always create a table segment (#722) | Derek Schuff | 2016-09-30 | 71 | -3/+141 |
| | | | | | | | Previously a table was only created if there were any address-taken functions. New module validation rules require the existence of a table for any call-indirects to validate (even if they are dead and never called). However this use case seems common enough that we might want to make it continue to work. So the linker now always creates an empty table segment (indicating an empty table). | ||||
* | validate drop (#712) | Alon Zakai | 2016-09-30 | 2 | -10/+12 |
| | |||||
* | Update waterfall to 11453 and re-enable torture tests (#721) | Derek Schuff | 2016-09-29 | 105 | -7075/+6538 |
| | | | | | | | | Torture tests from the clang were disabled with the first 0xc udpate. This PR updates the tests to a new waterfall build and turns them on (also updating the known failures for 0xc). It also updates the download URL since mac and windows bots have been added to the waterfall (they are not up yet and support in this script is not tested yet). | ||||
* | Print the name of memory along with size (#720) | Derek Schuff | 2016-09-28 | 150 | -234/+234 |
| | | | | | 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. | ||||
* | fix signed int64 LEB bug with large negative values (#719) | Alon Zakai | 2016-09-28 | 3 | -0/+12 |
| | |||||
* | s2wasm: Do not add drops for void values (#718) | Derek Schuff | 2016-09-28 | 32 | -3968/+3072 |
| | | | Fixes #708 | ||||
* | Type check block/loop/if sigs (#717) | Alon Zakai | 2016-09-28 | 34 | -758/+770 |
| | | | | | | * type check using block/loop/if types provided in text and binary formats. * print if and loop sigs which were missing. * remove dsl from OptimizeInstructions as after those changes it needs rethinking. | ||||
* | Update binary encoding for block, loop, and if signatures (#711) | Derek Schuff | 2016-09-27 | 7 | -11/+11 |
| | | | | | | Also updates the tests and has a few other changes for binary 0xc: Update nop/unrechable opcodes Fix for "name" section | ||||
* | Make wasm-as emit the names section/debug info only with -g (#705) | Alon Zakai | 2016-09-26 | 5 | -0/+1205 |
| | |||||
* | precompute breaks and returns (#715) | Alon Zakai | 2016-09-25 | 4 | -1/+240 |
| | |||||
* | optimize if(const) | Alon Zakai | 2016-09-24 | 11 | -167/+81 |
| | |||||
* | precompute void expressions too | Alon Zakai | 2016-09-24 | 10 | -96/+45 |
| | |||||
* | fix a simplify-locals bug where we didn't notice and if already had a result ↵ | Alon Zakai | 2016-09-23 | 2 | -0/+55 |
| | | | | value | ||||
* | replace two drops in an if-else with one on the if | Alon Zakai | 2016-09-23 | 7 | -0/+100 |
| | |||||
* | autoDrop fix | Alon Zakai | 2016-09-23 | 7 | -59/+136 |
| | |||||
* | update spec tests and check.py's handling of them | Alon Zakai | 2016-09-21 | 1 | -0/+0 |
| | |||||
* | new if label behavior | Alon Zakai | 2016-09-21 | 1 | -8/+8 |
| | |||||
* | refactor wasm.h to remove numericIndex hacks, and move indexing to the parsers | Alon Zakai | 2016-09-21 | 8 | -12/+12 |
| | |||||
* | memory and table printing fixes | Alon Zakai | 2016-09-20 | 32 | -112/+64 |
| | |||||
* | globals mutability fixes | Alon Zakai | 2016-09-19 | 20 | -400/+500 |
| | |||||
* | parsing and validation fixes | Alon Zakai | 2016-09-17 | 4 | -7/+14 |
| | |||||
* | br_if returns its value | Alon Zakai | 2016-09-16 | 12 | -97/+139 |
| | |||||
* | block signatures | Alon Zakai | 2016-09-16 | 29 | -458/+458 |
| | |||||
* | call_import changes: no more call_import, shared index space with functions | Alon Zakai | 2016-09-16 | 56 | -1979/+1979 |
| | |||||
* | handle getTempRet0 having extra code, which can happen in emterpreter ↵ | Alon Zakai | 2016-09-15 | 5 | -1/+43 |
| | | | | assertions mode | ||||
* | fix remove-unused-brs bug when checking if it is safe to conditionalize code | Alon Zakai | 2016-09-15 | 2 | -0/+65 |
| | |||||
* | Update s2wasm for 0xc changes (#698) | Derek Schuff | 2016-09-15 | 93 | -6657/+7164 |
| | | | | | | | | | | | Several updates for s2wasm and its tests: Add explicit drops where they are emitted by LLVM already Convert loops (which are still modeled in the old way by LLVM) to wrap them in an explicit block (for the exit label). This also allows simplifying the loop creation (no need to post-process the implicit block which is the loop's body). After the engines update to 0xc we should update LLVM to model loops in the 0xc way, but for now it remains compatible with 0xb and 0xc. Fix the order of the calls to setTee() when creating tee_locals Add an explicit drop when creating the _start entry function wrapper if needed Update dot_s and llvm_autogenerated tests to remove store-results optimization (and few other minor updates) Fix the test auto-updater to fail if subprocesses fail There still seems to be a validation failure when building libc (I think it's from the stricter drop rules, but it may be in the source rather than the compiler), but this at least makes Binaryen's tests pa | ||||
* | when optimizing a block return value, replacing the sunk set with the value ↵ | Alon Zakai | 2016-09-14 | 2 | -18/+75 |
| | | | | is only possible if the break is unconditional; if it is condition, we must tee the value so that if the break condition is false and we do not jump, then we have the new value in the local on the line after it | ||||
* | avoid threading jumps when there is irreducible control flow, as it is hard ↵ | Alon Zakai | 2016-09-14 | 2 | -2552/+2766 |
| | | | | to know if it is safe to do so | ||||
* | drop if-else arms as necessary | Alon Zakai | 2016-09-13 | 5 | -8/+133 |
| | |||||
* | update br type when turning it into a br_if in remove-unused-brs | Alon Zakai | 2016-09-13 | 5 | -0/+107 |
| | |||||
* | fix bug with turning if into br_if without checking for reordering dangers | Alon Zakai | 2016-09-12 | 4 | -20/+167 |
| | |||||
* | simple jump threading | Alon Zakai | 2016-09-12 | 6 | -6987/+7005 |
| | |||||
* | thread relooper jumps | Alon Zakai | 2016-09-12 | 7 | -17351/+16837 |
| | |||||
* | remove final elements in vacuum carefully: we must preserve a return value ↵ | Alon Zakai | 2016-09-11 | 2 | -0/+75 |
| | | | | if there is one | ||||
* | run another optimize-expressions at the end of asm2wasm | Alon Zakai | 2016-09-10 | 7 | -32/+209 |
| | |||||
* | optimize if-else to br_if when in a block | Alon Zakai | 2016-09-10 | 11 | -369/+375 |
| | |||||
* | optimize eqz^2 in select and br_if | Alon Zakai | 2016-09-10 | 4 | -42/+36 |
| |