Nick Lewycky
26c8fd52c8
Initial implementation of "known to be arithmetic NaN / not NaN".
2019-11-26 12:20:43 -08:00
Nick Lewycky
fafc7ad38c
Add "known to not contain non-arithmetic NaNs" to ExtraInfo in LLVM backend.
...
Not wired up yet.
2019-11-26 12:20:43 -08:00
Patrick Ventuzelo
bb16547567
Merge branch 'ventuzelo/fix-1005-panic-sub-overflow' of github.com:pventuzelo/wasmer into ventuzelo/fix-1005-panic-sub-overflow
2019-11-26 09:18:05 +01:00
Patrick Ventuzelo
49665d5797
use checked_sub for peekn_extra
2019-11-26 09:17:13 +01:00
bors[bot]
7715be9ccb
Merge #1017
...
1017: Add a 'clear' method to map. r=nlewycky a=nlewycky
# Description
Motivated by work on the `nlewycky/inkwell-lifetimes` branch. No callers yet on master, but we use it on the branch and I'd like to merge in pieces.
Co-authored-by: Nick Lewycky <nick@wasmer.io>
2019-11-25 22:54:12 +00:00
Nick Lewycky
4e2440daec
Add a 'clear' method to map.
2019-11-25 14:53:25 -08:00
Patrick Ventuzelo
7ca0430a40
activate pre_validation when llvm backend selected
2019-11-25 13:17:07 +01:00
Patrick Ventuzelo
d376b89ef0
Merge branch 'master' into ventuzelo/fix-1005-panic-sub-overflow
2019-11-25 12:05:33 +01:00
bors[bot]
5c1c786e35
Merge #1002
...
1002: Update the LLVM pass list. r=nlewycky a=nlewycky
# Description
Adds optimizations of loops, and inlinling and some simple interprocedural optimization.
Measured on the libsodium benchmarks, the new pass pipeline is a 2.35% geomean improvement. No major performance regressions known.
Co-authored-by: Nick Lewycky <nick@wasmer.io>
2019-11-23 05:11:44 +00:00
Nick Lewycky
3ef9f769df
Fix TBAA crash with LLVM + the gas middleware.
2019-11-22 17:03:31 -08:00
Nick Lewycky
681219b06c
Fix bug in LLVM lowering of 'return' when the stack has a float on it.
2019-11-22 17:03:31 -08:00
Nick Lewycky
85666fc522
Add new llvm-backend-test crate.
2019-11-22 17:03:23 -08:00
Nick Lewycky
2433d365af
Add new test feature, enabled in test crates.
...
When test feature is enabled, turn on LLVM verifier. This was previously never enabled.
2019-11-22 16:51:44 -08:00
Mark McCaskey
bb1e7a8d78
Prepare for 0.11.0 release
2019-11-22 11:18:06 -08:00
Syrus
a691d3454c
Skip serializing on singlepass
2019-11-22 09:49:17 -08:00
Patrick Ventuzelo
2261f8b449
cargo fmt
2019-11-22 17:21:15 +01:00
Patrick Ventuzelo
508004088e
check stack len before getting value
2019-11-22 17:10:54 +01:00
Nick Lewycky
9fe5e261ea
Update the LLVM pass list.
...
Adds optimizations of loops, and inlinling and some simple interprocedural optimization.
2019-11-21 22:41:23 -08:00
Syrus
0834ccf661
Merge branch 'master' into feature/singlepass-aarch64
...
# Conflicts:
# Makefile
2019-11-21 20:10:09 -08:00
Mark McCaskey
180528241d
Fix merge issue in wasi tests
2019-11-21 19:31:17 -08:00
Syrus
27b6acdb16
Fixed typo
2019-11-21 18:55:38 -08:00
Syrus
9a146c57fc
Make docs compilation happy
2019-11-21 18:35:19 -08:00
Syrus
7b9485320d
Revert "Autodetect default backend, add features for architecture type"
...
This reverts commit 31437a1e74
.
2019-11-21 18:26:31 -08:00
Mark McCaskey
44f2e926ac
Merge branch 'master' into compiler-tests
2019-11-21 17:24:08 -08:00
Mark McCaskey
31437a1e74
Autodetect default backend, add features for architecture type
2019-11-21 17:22:21 -08:00
losfair
87f4183440
Merge remote-tracking branch 'origin/master' into feature/singlepass-aarch64
2019-11-22 09:09:01 +08:00
losfair
5da44c3bf8
Add 'fault' placeholder for Windows.
2019-11-22 07:26:35 +08:00
Mark McCaskey
bdeec52152
Fix imports in test; copy manual implementations of Debug
for wasi
2019-11-21 14:00:46 -08:00
Syrus
c3f93f1275
Fixed formatting
2019-11-21 13:38:22 -08:00
Syrus
aeb66ee48e
Simplify compiler test options
2019-11-21 13:36:44 -08:00
Mark McCaskey
68fa9e2639
Merge branch 'feature/add-support-for-new-wasi' of github.com:wasmerio/wasmer into feature/add-support-for-new-wasi
2019-11-21 11:31:00 -08:00
Mark McCaskey
ddccdb92b8
More fixes for CI
2019-11-21 11:30:44 -08:00
Mark McCaskey
36a26717c2
Merge branch 'master' into feature/add-support-for-new-wasi
2019-11-21 10:58:05 -08:00
Mark McCaskey
be217e8f8e
Update from feedback, fix CI issues, update wasi-test
2019-11-21 10:57:04 -08:00
losfair
7626957203
Enable block_trace middleware only on unix.
2019-11-22 02:38:47 +08:00
losfair
4dd810bbac
Ensure code version metadata is pushed properly.
2019-11-22 02:23:51 +08:00
losfair
8709708de7
Unwind if breakpoint handler returns error.
2019-11-22 01:57:04 +08:00
losfair
4ec4fcf28a
Try fixing middleware failure.
2019-11-22 01:46:02 +08:00
losfair
6f3e6fab3b
Try fixing compilation on Windows.
2019-11-22 00:51:20 +08:00
losfair
c0ff110ca9
Merge remote-tracking branch 'origin/master' into feature/singlepass-aarch64
2019-11-22 00:38:02 +08:00
losfair
15e3a038ea
Try fixing compilation on Windows.
2019-11-22 00:36:34 +08:00
Ivan Enderlin
1e6dbf9b86
Merge branch 'master' into fix-gh-979
2019-11-21 11:01:45 +01:00
Ivan Enderlin
b1f58bded0
fix(runtime-core) Improve error message when globals are corrupted.
...
Before this patch:
```
$ cargo run -- run panic_index_oob_all_backends.wasm
Error: ExportNotFound { name: "main" }
```
With this patch:
```sh
$ cargo run -- run panic_index_oob_all_backends.wasm
Error: Can't instantiate module: LinkError([Generic { message: "Trying to read the `0` global that isn\'t properly initialized." }])
```
2019-11-21 10:57:52 +01:00
Ivan Enderlin
a9e446b5cd
fix(runtime-core) Fix a panic when generating globals.
...
Fix https://github.com/wasmerio/wasmer/issues/979 .
When we try to get a global that doesn't exist, a panic is
generated. This patch just skip that path, and let a proper error be
generated later.
With this patch, we get:
```sh
$ cargo run -- run panic_index_oob_all_backends.wasm
Error: ExportNotFound { name: "main" }
```
which is kind of the expected behavior in such situation.
2019-11-21 10:51:04 +01:00
Syrus
b8aee87d6e
Skip atomic tests for now in singlepass Aarch64
2019-11-20 19:11:33 -08:00
Syrus
b77dffbbfe
Merge branch 'master' into feature/singlepass-aarch64
2019-11-20 19:09:19 -08:00
Mark McCaskey
fc733647ec
Add info in c api readme in the testing section
2019-11-20 16:38:44 -08:00
Mark McCaskey
4a84441ab0
Run WASI C API tests based on feature; prevent cmake caching
2019-11-20 15:41:33 -08:00
bors[bot]
6831a6d8c9
Merge #987
...
987: Fix runtime c api header preprocessor gcc r=syrusakbary a=Hywan
`ARCH_X86_64` is correctly defined for GCC or clang, but gnuc was
missing. This patch fixes that.
Address https://github.com/wasmerio/php-ext-wasm/issues/93
Fix https://github.com/wasmerio/wasmer/issues/984
Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2019-11-20 16:09:09 +00:00
Ivan Enderlin
9468e229f4
chore(runtime-c-api) Update header files.
2019-11-20 13:30:02 +01:00
Ivan Enderlin
dfe7c0d764
fix(runtime-c-api) Add support for GNUC when defining ARCH_X86_64
.
...
`ARCH_X86_64` is correctly defined for GCC or clang, but gnuc was
missing. This patch fixes that.
2019-11-20 13:27:18 +01:00
Brandon Fish
bd58842041
Refactor excludes and add target_arch option
2019-11-19 23:38:50 -06:00
losfair
0c7545ded7
Tell dynasm we are generating x64 code in emitter_x64
.
2019-11-20 02:09:32 +08:00
losfair
d56fd96395
Merge remote-tracking branch 'origin/master' into feature/singlepass-aarch64
2019-11-20 01:54:34 +08:00
losfair
c9aa37fc99
Cleanup.
2019-11-20 01:48:20 +08:00
losfair
34bb321e66
Rename emit_host_redirection
.
2019-11-20 01:34:45 +08:00
losfair
98052f82b9
Unmap stack after call.
2019-11-20 01:27:48 +08:00
losfair
85b1935366
Uncomment previously disabled test.
2019-11-20 01:22:56 +08:00
losfair
3d48115586
Allocate a big enough stack for invoke().
2019-11-20 01:07:02 +08:00
losfair
a7577dfcef
Try further reducing preallocated stack size.
2019-11-20 00:37:38 +08:00
bors[bot]
e8e460ec60
Merge #977
...
977: fix(runtime-core) Remove unnecessary implementation of `WasmTypeList` r=Hywan a=Hywan
The unit tests `test_func_arity_*` covers all possibilities, from 0 to
12. Removing this specific implementation of `WasmTypeList` for `(A,)`
doesn't break the test cases.
Also, the `impl_traits!` macro already implement `WasmTypeList` for
`(A,)` with `impl_traits!([transparent] S1, A)`. It's not clear why
`rustc` doesn't detect that though.
Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2019-11-19 14:07:37 +00:00
Ivan Enderlin
dbefa165dc
Merge branch 'master' into fix-runtime-core-clean-up-typed_func
2019-11-19 14:35:11 +01:00
Ivan Enderlin
b856e111b6
Merge branch 'master' into test-runtime-core-typed_func
2019-11-19 14:34:53 +01:00
bors[bot]
8ffd380006
Merge #973
...
973: Add sign extension spec tests; add sign extension to singlepass r=nlewycky a=MarkMcCaskey
Adds missing spectests from official repo, implements instructions for singlepass
# Review
- [ ] Add a short description of the the change to the CHANGELOG.md file
Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Mark McCaskey <5770194+markmccaskey@users.noreply.github.com>
2019-11-18 22:16:49 +00:00
Mark McCaskey
8a096a09e4
Remove extra register use in sign extension instructions
2019-11-18 11:47:58 -08:00
bors[bot]
e568c4a374
Merge #972
...
972: Prepare for 0.10.2 release r=MarkMcCaskey a=MarkMcCaskey
Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-11-18 19:44:33 +00:00
Mark McCaskey
344132cc89
Merge branch 'master' into feature/singlepass-sign-extension
2019-11-18 11:38:12 -08:00
Mark McCaskey
8b6a7b77fc
Clean up from feedback
2019-11-18 11:36:49 -08:00
losfair
8ebf8986f0
Reduce stack size.
2019-11-19 03:15:12 +08:00
losfair
2776daedfa
Fix entry with more than 5/6 arguments.
2019-11-19 03:04:07 +08:00
losfair
ddbdb3e585
Ignore extra arguments.
2019-11-19 02:46:31 +08:00
losfair
06a7e5424b
Inline entry trampolines.
2019-11-19 02:39:51 +08:00
Mark McCaskey
2cbc748188
Revert "Update Rust version to 1.39.0."
2019-11-18 09:59:07 -08:00
losfair
d7308c361d
Fix call_indirect on imported functions.
2019-11-19 01:25:01 +08:00
losfair
23f03f555b
Fix compilation failure in tiering.rs.
2019-11-18 23:10:49 +08:00
Ivan Enderlin
f6cb6ce286
fix(runtime-core) Remove a warning for unused_parens
.
...
The behavior of `unused_parens` has changed since Rust 1.39. A warning
is then raised. This patch fixes that.
2019-11-18 12:44:40 +01:00
Ivan Enderlin
85a53e8e1f
test(runtime-core) Test closures in Func::new
.
2019-11-18 12:44:00 +01:00
Ivan Enderlin
4e42fa1e48
fix(runtime-core) Remove unnecessary implementation of WasmTypeList
.
...
The unit tests `test_func_arity_*` covers all possibilities, from 0 to
12. Removing this specific implementation of `WasmTypeList` for `(A,)`
doesn't break the test cases.
Also, the `impl_traits!` macro already implement `WasmTypeList` for
`(A,)` with `impl_traits!([transparent] S1, A)`. It's not clear why
`rustc` doesn't detect that though.
2019-11-18 12:22:17 +01:00
losfair
1eed6ce8f8
Fix CONSTRUCT_STACK_AND_CALL_WASM for aarch64.
2019-11-18 02:06:31 +08:00
losfair
5d2ee4fcc8
Fix floating point comparision involving NaNs.
2019-11-18 01:39:44 +08:00
losfair
cbaa94a7fa
Fix movsx(S32, S64).
2019-11-18 01:08:39 +08:00
losfair
08beb99baa
Fix popcnt.
2019-11-17 05:15:10 +08:00
losfair
021a75244e
Reformat code for rust 1.39.
2019-11-17 04:39:39 +08:00
losfair
1db6425cd5
Merge remote-tracking branch 'origin/master' into feature/singlepass-aarch64
2019-11-17 04:36:22 +08:00
Mark McCaskey
7631aee4f4
Add sign extension spec tests; add sign extension to singlepass
2019-11-15 21:54:34 -08:00
anb
3b2d751c55
Enable compilation for specific target
...
By exposing the target information through `CompilerConfig`,
compiler(only LLVM at the moment) could create a machine with
different CPU feature flags other than current host, which makes it
capable to "cross compile" to some degree.
Update #959
2019-11-15 18:51:59 -08:00
Mark McCaskey
cebcb4c927
Prepare for 0.10.2 release
2019-11-15 14:55:53 -08:00
Nick Lewycky
ebe8da7bd3
When accessing memory, use byte aligned accesses.
...
LLVM's instcombine will attempt to bump the alignment when it can prove that it's safe to do so.
Fixes #969 .
2019-11-15 14:47:53 -08:00
bors[bot]
4a2eaa4143
Merge #966
...
966: Add deny missing docs to runtime lib r=bjfish a=bjfish
<!--
Prior to submitting a PR, review the CONTRIBUTING.md document for recommendations on how to test:
https://github.com/wasmerio/wasmer/blob/master/CONTRIBUTING.md#pull-requests
-->
# Description
<!--
Provide details regarding the change including motivation,
links to related issues, and the context of the PR.
-->
Co-authored-by: Brandon Fish <brandon.j.fish@gmail.com>
2019-11-14 18:16:03 +00:00
losfair
342974effd
Comment out failing test.
2019-11-15 00:23:10 +08:00
losfair
a9c89eb1a8
Merge remote-tracking branch 'origin/master' into feature/singlepass-aarch64
2019-11-14 23:46:15 +08:00
Ivan Enderlin
074a8f9747
Merge branch 'fix-runtime-c-api-header-preprocessor-clang' of github.com:Hywan/wasmer into fix-runtime-c-api-header-preprocessor-clang
2019-11-14 14:46:09 +01:00
Ivan Enderlin
c43a7c78d0
Merge branch 'master' into fix-runtime-c-api-header-preprocessor-clang
2019-11-14 14:45:27 +01:00
Ivan Enderlin
987b0765c0
chore(runtime-c-api) Update header files.
2019-11-14 14:37:55 +01:00
Ivan Enderlin
42b02bee71
fix(runtime-c-api) Write macros at column 0.
2019-11-14 14:37:06 +01:00
Brandon Fish
929bff9df8
Add deny missing docs to runtime lib
2019-11-13 22:59:21 -06:00
bors[bot]
fff16c08d0
Merge #965
...
965: Add categories and keywords to `Cargo.toml`s r=MarkMcCaskey a=MarkMcCaskey
Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-11-13 23:47:56 +00:00
Mark McCaskey
9127eaf825
Add categories and keywords to Cargo.toml
s
2019-11-13 15:46:09 -08:00
Ivan Enderlin
c4dffd6f59
doc(runtime-core) Fix typos.
2019-11-13 15:55:45 +01:00
Ivan Enderlin
7b809a765f
doc(runtime-core) Improve documentation of func!
.
...
This patch explains that `func!` can consume closures.
2019-11-13 15:54:41 +01:00