| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Translate assert_return invokes to asm
* Translate assert_trap tests to JS
* Enable wasm2asm tests
* Fix wasm2asm translation of store
* Update ubuntu nodejs in Travis
* Free JSPrinter buffer
* Use unique_ptr for Functions to prevent leaks
* Add tests for assert translation
|
|
|
| |
* Rotations, popcnt, ctz, etc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Get wasm2asm building again
Updates CMakeLists.txt to have wasm2asm built by default, updates
wasm2asm.h to account for recent interface changes, and restores
JSPrinter functionality.
* Implement splice for array values
* Clean up wasm2asm testing
* Print semicolons after statements in blocks
* Cleanups and semicolons for condition arms
* Prettify semicolon emission
|
|
|
|
|
|
|
|
| |
* parallelize istring creation, by having a thread-local set and a global set guarded by a mutex. each time a new string shows up in a thread, it will be added to that thread's set, after accessing the global set through the lock first, which means we lock at most once per new string per thread
* don't leak strings in istring store
* since we now create names in a parallel thread-safe manner, we don't need to pre-create names in RelooperJumpThreading
|
|
|
|
| |
1. Add a missing <functional> include
2. Put the // fallthrough comment after the closing bracket so the compiler does not emit a implicit fallthrough warning.
|
|
|
|
| |
assigning to a name and not an arbitrary ast node
|
|
|
|
| |
asm.js anyhow, so knowing where ;s are is unnecessary bloat
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
in outer scope." warnings. (#795)
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
| |
* Factor passes and emscripten-optimizer into static libs
This removes the redundancies from the source sets in the main
CMakeLists.txt.
* Make passes an object lib
* Use static libs with --whole-archive because Travis has old cmake
|
| |
|
| |
|
|
|
| |
Fixes #352
|
|
|
|
| |
* allow traversals to mark themselves as function-parallel, in which case we run them using a thread pool. also mark some thread-safety risks (interned strings, arena allocators) with assertions they modify only on the main thread
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As spec'd in: https://github.com/WebAssembly/design/pull/495
And discussed in: https://github.com/WebAssembly/spec/issues/231
This will make it simpler and more uniform to add a start entry point.
s2wasm is the right place to add start because it'll eventually need to
do other basic setup, e.g. put code in start to setup the stack, as
dschuff is doing in:
https://github.com/WebAssembly/binaryen/pull/179
Or rather, the linker is the right place and s2wasm happens to act as
our linker right now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This triggers 5 independent build / test runs:
- clang, no sanitizer;
- clang, UB sanitizer;
- clang, address sanitizer (disabled for now);
- clang, thread sanitizer (disabled for now);
- GCC.
Enabling UBSan led to these changes:
- Fix a bunch of undefined behavior throughout the code base.
- Fix some tests that relied on that undefined behavior.
- Make some of the tests easier to debug by printing their command line.
- Add ubsan blacklist to work around libstdc++ bug.
- Example testcase also needs sanitizer because libsupport.a uses it.
|
| |
|
|
|
|
| |
For now I've only moved the color check (and made it check the environment only once, note function local static initialization is thread-safe in C++11). This will make the builds slightly faster and allow us to move platform-specific code out of header files (reducing the amount of #include gunk). I'll eventually move other parts of the code to support, especially the command-line parsing (once it's reusable).
|
|
|
|
| |
platforms
|
| |
|
| |
|
|
|
|
|
|
| |
My previous patch addressed all LLVM warnings, this one addresses all the GCC ones as well (mostly signed / unsigned mix).
The patch also turns on -Wall -Werror.
|
| |
|
|
|
|
| |
This applies Apache 2.0 properly (as far as our lawyers have told me). We can do this early since all of the code was written by Alon Zakai.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|