Commit Graph

2780 Commits

Author SHA1 Message Date
losfair
31921bb3c4 Fix fpregs offset base 2019-07-15 23:15:57 +08:00
losfair
263afa8a80 Fix trap handler in WSL environment. 2019-07-15 23:00:27 +08:00
bors[bot]
8a471cc235 Merge #559
559: Initial commit of a fuzzer. Run with "cargo fuzz run simple_instantiate". r=nlewycky a=nlewycky

Used to discover issue #558.

We'll probably want to reconsider the default .gitignore of the artifacts and corpus directories. The fuzzer wastes a lot of time not having even a single exampel of a valid .wasm file to start with.

Co-authored-by: Nick Lewycky <nicholas@mxc.ca>
Co-authored-by: nlewycky <nicholas@mxc.ca>
2019-07-14 02:52:26 +00:00
Nick Lewycky
46f3a9f5e4 Add a readme. 2019-07-13 18:41:06 -07:00
nlewycky
d482e4cd5e
Merge branch 'master' into features/fuzzer 2019-07-13 18:16:47 -07:00
Nick Lewycky
5c0ede0b42 Initial commit of a fuzzer. Run with "cargo fuzz run simple_instantiate".
Used to discover issue #558.

We'll probably want to reconsider the default .gitignore of the artifacts and corpus directories. The fuzzer wastes a lot of time not having even a single exampel of a valid .wasm file to start with.
2019-07-13 17:57:30 -07:00
bors[bot]
608bb272dc Merge #554
554: finish implementation of wasi::fd_seek, fix bug in filestat r=syrusakbary a=MarkMcCaskey



Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Syrus <me@syrusakbary.com>
2019-07-13 23:03:10 +00:00
Syrus
2ce0e02cc8 Added changes in CHANGELOG 2019-07-13 16:01:29 -07:00
Syrus
24f1e99ead Fixed WASI tests 2019-07-13 16:00:18 -07:00
Syrus
b0ead8fc04 Merge branch 'master' into feature/complete-fd-seek 2019-07-13 15:40:51 -07:00
bors[bot]
13abdfee98 Merge #557
557: Update loader-kernel feature name, fix compilation track state r=syrusakbary a=bjfish

- feature name `loader:kernel` -> `loader-kernel` (no colons)
- add track state `false` to loader kernel default, @losfair let me know if this default is incorrect
- cargo fmt

Co-authored-by: Brandon Fish <brandon.j.fish@gmail.com>
2019-07-13 09:35:27 +00:00
Brandon Fish
ed19fd2913 Update loader-kernel feature name, fix compilation track state, cargo fmt 2019-07-12 23:02:57 -05:00
Brandon Fish
09db8d6cdc
Merge pull request #556 from wasmerio/feature/add-make-check-to-build
Add make check to build to check features are in test
2019-07-12 22:54:56 -05:00
Brandon Fish
bf2494898d Add cargo to macos path for make check 2019-07-12 22:35:54 -05:00
Brandon Fish
6fdff3ecca Add make check to build to check features are in test 2019-07-12 22:18:09 -05:00
bors[bot]
844cf44a38 Merge #552
552: Allow disabling state tracking for faster startup. r=bjfish a=losfair

~10% compilation speedup when `--no-track-state` is enabled.

Co-authored-by: losfair <zhy20000919@hotmail.com>
2019-07-13 02:01:38 +00:00
Mark McCaskey
a608f3aad0 fix wasi test template code 2019-07-12 15:17:10 -07:00
Mark McCaskey
cbac3ed92d finish implementation of wasi::fd_seek, fix bug in filestat 2019-07-12 15:10:16 -07:00
bors[bot]
bd2a082a78 Merge #550
550: Fix singlepass compilation error with `imul` instruction. r=losfair a=losfair



Co-authored-by: losfair <zhy20000919@hotmail.com>
2019-07-12 16:39:32 +00:00
losfair
977fd1e25e Fix trap offset lookup. 2019-07-13 00:17:33 +08:00
losfair
450109e2bb Fix singlepass compilation error. 2019-07-13 00:17:21 +08:00
losfair
08cdc9a42f Allow disabling state tracking for faster startup. 2019-07-12 23:37:40 +08:00
losfair
f327feccef Merge remote-tracking branch 'origin/master' into fix/imul-relax 2019-07-12 23:37:01 +08:00
Syrus Akbary
08111b77bc
Update install.sh 2019-07-11 18:01:42 -07:00
bors[bot]
6f36cc00ee Merge #551
551: Try a new list of optimization passes. r=nlewycky a=nlewycky

A few notes:
a) the inliner doesn't help because all the calls are indirect and not even opt -O2 can figure out which functions they're actually calling.
b) aggressive instruction combining is not a super-set of the instruction combiner. Instcombine is made up of a large number (probably 10,000s) of patterns, and some particularly slow ones were taken out and moved to the aggressive instruction combiner. Aggressive instcombine *only* runs that handful of optimizations, which fired zero times on our example wasm files.
c) NewGVN is not ready for production, it has asserts that fire when building sqlite or cowsay. This is why sqlite didn't build with the llvm backend.
d) Scalar-replacement-of-aggregates (sroa) is a strict superset of promote-memory-to-registers (mem2reg), and you probably want sroa because it's usually faster. It also fires 10,000s more times than mem2reg on lua.wasm.
e) Aggressive-dead-code-elimination was only deleting as much regular dead-code-elimination, but is slower because it depends on a postdominator tree (PDT) analysis that. Other passes don't need PDT so we'll have to build it for just this one pass (as opposed to regular dominator-tree which is reused by many passes). I've replaced this with bit-tracking dead-code-elimination which deletes more code than dce/adce.

Co-authored-by: Nick Lewycky <nicholas@mxc.ca>
Co-authored-by: nlewycky <nicholas@mxc.ca>
2019-07-12 00:38:40 +00:00
nlewycky
278adf678a
Merge branch 'master' into nlewycky/llvm 2019-07-11 16:48:46 -07:00
Nick Lewycky
7fb88251d4 Simplify trap_if_not_representable_as_int.
Fix typo in function name. Use two fcmp instructions instead of unpacking the bits of the IEEE float and using integer arithmetic to determine details about its value.
2019-07-11 16:46:37 -07:00
Syrus Akbary
d59c5531fd
Update install.sh 2019-07-11 16:23:57 -07:00
Syrus Akbary
0583da0ae2
Use WASMER_DIR if present when INSTALL_DIRECTORY is not present
Fixed #549
2019-07-11 16:22:02 -07:00
bors[bot]
9e974c7ce3 Merge #548
548: Update to nix 0.14 r=syrusakbary a=repi

Instead of using a mix of nix 0.12 & 0.13 crates.

Co-authored-by: Johan Andersson <repi@repi.se>
2019-07-11 21:58:55 +00:00
Nick Lewycky
7045030532 Try a new list of optimization passes.
A few notes:
a) the inliner doesn't help because all the calls are indirect and not even opt -O2 can figure out which functions they're actually calling.
b) aggressive instruction combining is not a super-set of the instruction combiner. Instcombine is made up of a large number (probably 10,000s) of patterns, and some particularly slow ones were taken out and moved to the aggressive instruction combiner. Aggressive instcombine *only* runs that handful of optimizations, which fired zero times on our example wasm files.
c) NewGVN is not ready for production, it has asserts that fire when building sqlite or cowsay. This is why sqlite didn't build with the llvm backend.
d) Scalar-replacement-of-aggregates (sroa) is a strict superset of promote-memory-to-registers (mem2reg), and you probably want sroa because it's usually faster. It also fires 10,000s more times than mem2reg on lua.wasm.
e) Aggressive-dead-code-elimination was only deleting as much regular dead-code-elimination, but is slower because it depends on a postdominator tree (PDT) analysis that. Other passes don't need PDT so we'll have to build it for just this one pass (as opposed to regular dominator-tree which is reused by many passes). I've replaced this with bit-tracking dead-code-elimination which deletes more code than dce/adce.
2019-07-11 14:48:07 -07:00
losfair
c186e0244e Fix compile error on imul. 2019-07-11 20:26:20 +08:00
Johan Andersson
b41040cc59 Update to nix 0.14.
Instead of using a mix of nix 0.12 & 0.13
2019-07-11 12:28:56 +02:00
bors[bot]
0c4a8f77d2 Merge #543 #544
543: update version numbers to 0.5.5 r=MarkMcCaskey a=MarkMcCaskey



544: Use bitcast instead of alloca+load+ptrcast+store sequence. r=MarkMcCaskey a=nlewycky



Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Mark McCaskey <markmccaskey@users.noreply.github.com>
Co-authored-by: Nick Lewycky <nick@wasmer.io>
Co-authored-by: nlewycky <nick@wasmer.io>
2019-07-11 00:51:31 +00:00
Mark McCaskey
80a8262b2f revert appveyor change 2019-07-10 17:30:24 -07:00
Mark McCaskey
019de38fe8 update lock file 2019-07-10 17:19:20 -07:00
nlewycky
3795b48401
Merge branch 'master' into llvm-cleanup 2019-07-10 16:58:27 -07:00
Mark McCaskey
7789d1b096
Merge branch 'master' into release-0.5.5 2019-07-10 16:35:00 -07:00
Mark McCaskey
e084cd9e04
Merge pull request #546 from wasmerio/fix/publishing-for-clif-backend
use published forks of clif so we can publish again
2019-07-10 16:33:55 -07:00
Nick Lewycky
7f00dc3cdb Reformat. 2019-07-10 15:33:32 -07:00
Nick Lewycky
8faff26c31 Give float_bits bitcast instruction a name. 2019-07-10 15:31:18 -07:00
Mark McCaskey
50302d5d4e use published forks of clif so we can publish again 2019-07-10 15:10:00 -07:00
nlewycky
d1f3fb2ec2
Merge branch 'master' into llvm-cleanup 2019-07-10 13:32:17 -07:00
Mark McCaskey
b2db9238af
Merge pull request #545 from wasmerio/fix/ci-on-master-oops
rm clif submodule; fix master
2019-07-10 13:23:35 -07:00
Mark McCaskey
ad3d4a4679 rm clif submodule; fix master 2019-07-10 10:38:38 -07:00
Nick Lewycky
1e86e32d40 Use bitcast instead of alloca+load+ptrcast+store sequence. 2019-07-10 10:24:14 -07:00
Mark McCaskey
2ef7448e62 remove colons from feature names 2019-07-09 17:57:31 -07:00
Mark McCaskey
4752492974 update version numbers to 0.5.5 2019-07-09 17:43:04 -07:00
bors[bot]
8901f3fb66 Merge #541
541: fix abi crates depending on compilers r=MarkMcCaskey a=MarkMcCaskey

Here's the new dep graph: (red is optional)
![wasmer_depgraph](https://user-images.githubusercontent.com/5770194/60916081-6191d800-a242-11e9-9a0d-438079dea701.png)


Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Mark McCaskey <markmccaskey@users.noreply.github.com>
2019-07-09 23:35:02 +00:00
Mark McCaskey
74ce33919f
Merge branch 'master' into fix/abi-crate-deps 2019-07-09 15:31:45 -07:00