Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | handle unreachable tee_local properly in coalesce-locals (#761) | Alon Zakai | 2016-10-12 | 1 | -1/+5 |
| | |||||
* | fix bug where we set memory max to the initial value if the max wasn't ↵ | Alon Zakai | 2016-10-12 | 1 | -2/+0 |
| | | | | specified (#760) | ||||
* | Implement binary search for coalesce-locals (#744) | Loo Rong Jie | 2016-10-12 | 1 | -27/+14 |
| | | | | * Implement binary search using <algorithm> | ||||
* | handle memory growth with native wasm support: the result of grow_memory ↵ | Alon Zakai | 2016-10-11 | 1 | -2/+12 |
| | | | | tells us if it succeeded, and then the new buffer can be found on the Memory object | ||||
* | remove memory maximum in asm2wasm when memory growth is on | Alon Zakai | 2016-10-11 | 1 | -0/+1 |
| | |||||
* | Merge pull request #757 from WebAssembly/js-api | Alon Zakai | 2016-10-11 | 4 | -28/+32 |
|\ | | | | | Tiny fixes for native wasm support | ||||
| * | wasmTableSize of 0 is allowed | Alon Zakai | 2016-10-11 | 1 | -1/+2 |
| | | |||||
| * | if we see no asm.js function tables, the table size is 0 | Alon Zakai | 2016-10-11 | 1 | -1/+4 |
| | | |||||
| * | allow a maximum 0 size for a table | Alon Zakai | 2016-10-11 | 2 | -19/+19 |
| | | |||||
| * | refactor memoryBase and tableBase init to a shared location, so it affects ↵ | Alon Zakai | 2016-10-11 | 1 | -7/+7 |
| | | | | | | | | native builds too | ||||
| * | use wasmTableSize when provided | Alon Zakai | 2016-10-11 | 1 | -1/+1 |
| | | |||||
* | | put heavy pass debugging operations behind BINARYEN_PASS_DEBUG (#755) | Alon Zakai | 2016-10-11 | 1 | -2/+9 |
|/ | |||||
* | Don't create table sections for imported tables (#756) | Derek Schuff | 2016-10-11 | 6 | -13/+23 |
| | | | Previously the Print pass searched the imports for a table import and skipped printing a local table declaration if found. Instead this refactors to make importation explicit, and also create importation records (previously we were inconsistent about whether such records were created in the IR depending on the wast syntax). | ||||
* | improve comment | Alon Zakai | 2016-10-08 | 1 | -1/+2 |
| | |||||
* | track unreachable code in coalesce-locals, we know what is unreachable ↵ | Alon Zakai | 2016-10-08 | 2 | -9/+27 |
| | | | | anyhow, and it just adds overhead to not ignore it | ||||
* | remove unneeded param to doStartBasicBlock | Alon Zakai | 2016-10-08 | 1 | -11/+15 |
| | |||||
* | clean up some unneeded processing in cfg-walker | Alon Zakai | 2016-10-07 | 1 | -3/+0 |
| | |||||
* | use 0xc Memory and Table in JS glue (#752) | Alon Zakai | 2016-10-07 | 1 | -5/+18 |
| | |||||
* | Change print order of top-level module components (#751) | Derek Schuff | 2016-10-07 | 1 | -12/+13 |
| | | | | | | | | 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 | 6 | -65/+167 |
| | |||||
* | Dot s block signatures (#747) | jgravelle-google | 2016-10-06 | 1 | -3/+26 |
| | | | | | | | | | | * 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 | 1 | -11/+0 |
| | | | | Corresponds to LLVM change https://reviews.llvm.org/D25122, r283502 | ||||
* | Update s2wasm for removal of store results (#749) | Derek Schuff | 2016-10-06 | 1 | -6/+9 |
| | | | | Corresponds to LLVM change https://reviews.llvm.org/D25122 | ||||
* | validate get_local type (#745) | Alon Zakai | 2016-10-06 | 1 | -0/+3 |
| | |||||
* | DCE bugfix (#736) | Alon Zakai | 2016-10-04 | 1 | -2/+13 |
| | | | | | * 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 | 1 | -1/+7 |
| | |||||
* | Binary 0xc: Remove arity on return instruction (#740) | Derek Schuff | 2016-10-04 | 1 | -4/+2 |
| | | | | Also skip binary roundtrip on stacky spec tests | ||||
* | Write global mutability into wasm binary (#739) | Derek Schuff | 2016-10-04 | 1 | -3/+6 |
| | | | | | For compatibility with 0xc Also update opcode for get_global | ||||
* | Update i64 stores for 0xc (#731) | jgravelle-google | 2016-10-04 | 1 | -1/+1 |
| | | | | | | | | | | * Update i64 stores for 0xc * Update autogenerated LLVM tests * Update known torture test failures * Add i64.store32 test to unit.wast | ||||
* | More binary updates for 0xc (#733) | Derek Schuff | 2016-10-03 | 8 | -40/+70 |
| | | | | | | | | | | | | | | | Refine tables to explicitly exist or not. Previously they were printed or encoded if it had any segments, or an initial or max size. However tables can be defined but empty, so we had a special hack that defined an empty segment when we really just wanted an empty table. Now, just make the existence explicit. Update Function table encoding for 0xc (Table and Element sections) Add end opcodes after function bodies (these are consumed by getMaybeBlock with the same behavior that it had before when it reached the function end, so no explicit decode) Update call_indirect encoding for 0xc (no arity, call target is last) | ||||
* | don't create an unnecessary duplicate block in asm2wasm switches, when there ↵ | Alon Zakai | 2016-10-03 | 1 | -7/+5 |
| | | | | isn't a default (#734) | ||||
* | Refactor Import::Kind and Export::Kind into an ExternalKind enum class (#725) | Alon Zakai | 2016-10-03 | 14 | -120/+113 |
| | |||||
* | Document and clean up validation options (#730) | Alon Zakai | 2016-10-03 | 1 | -9/+31 |
| | | | | * document and clean up validation options | ||||
* | Use new WebAssembly API (#724) | Alon Zakai | 2016-10-03 | 1 | -2/+2 |
| | | | | | | * use new WebAssembly.Instance/Module API * detect presence of wasm with WebAssembly object | ||||
* | wasm-only additions: i32.cttz, copysign, popcnt (#729) | Alon Zakai | 2016-10-02 | 1 | -4/+17 |
| | |||||
* | fix vacuum big where we changed an unreachable node to a nop (#728) | Alon Zakai | 2016-10-02 | 1 | -1/+5 |
| | |||||
* | More wasm-only opts (#727) | Alon Zakai | 2016-10-02 | 1 | -69/+105 |
| | | | | | | * wasm-only loads and stores * wasm-only 32-bit bitcasts | ||||
* | passRunner debug and validation improvements (#726) | Alon Zakai | 2016-10-02 | 7 | -32/+80 |
| | |||||
* | asm2wasm i64 support (#723) | Alon Zakai | 2016-09-30 | 15 | -80/+536 |
| | | | | | | | | | | | | * 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 | 2 | -0/+4 |
| | | | | | | | 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 | 1 | -6/+1 |
| | |||||
* | Print the name of memory along with size (#720) | Derek Schuff | 2016-09-28 | 1 | -0/+1 |
| | | | | | 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 | 1 | -7/+43 |
| | |||||
* | s2wasm: Do not add drops for void values (#718) | Derek Schuff | 2016-09-28 | 1 | -1/+5 |
| | | | Fixes #708 | ||||
* | Type check block/loop/if sigs (#717) | Alon Zakai | 2016-09-28 | 10 | -338/+179 |
| | | | | | | * 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 | 3 | -27/+71 |
| | | | | | | 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 | 2 | -1/+11 |
| | |||||
* | precompute breaks and returns (#715) | Alon Zakai | 2016-09-25 | 2 | -16/+60 |
| | |||||
* | optimize if(const) | Alon Zakai | 2016-09-24 | 1 | -0/+15 |
| | |||||
* | precompute void expressions too | Alon Zakai | 2016-09-24 | 1 | -12/+6 |
| |