| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Support block signatures in s2wasm's .s format
* Autogenerate tests
* update cfg-stackify tests
* Remove conflict files
|
|
|
|
| |
Corresponds to LLVM change https://reviews.llvm.org/D25122, r283502
|
|
|
|
| |
Corresponds to LLVM change https://reviews.llvm.org/D25122
|
|
|
|
| |
Use the command-line instead.
Also update the blacklist to handle new tests.
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Update i64 stores for 0xc
* Update autogenerated LLVM tests
* Update known torture test failures
* Add i64.store32 test to unit.wast
|
|
|
|
| |
isn't a default (#734)
|
| |
|
| |
|
|
|
|
|
|
| |
* wasm-only loads and stores
* wasm-only 32-bit bitcasts
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
Fixes #708
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
| |
Also updates the tests and has a few other changes for binary 0xc:
Update nop/unrechable opcodes
Fix for "name" section
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
value
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
assertions mode
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
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
|
|
|
|
| |
to know if it is safe to do so
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
if there is one
|
| |
|