Commit Graph

2329 Commits

Author SHA1 Message Date
Nick Lewycky
a06c858087 Make ExtraInfo bitand check for pending validity.
Unfortunately, this is quite buggy. For something as simple as F32Sub, to combine two ExtraInfos, we want to add a new pending_f32_nan(), unless both of the inputs are arithmetic_f32(). In this commit, we incorrectly calculate that we don't need a pending_f32_nan if either one of the inputs was arithmetic_f32().
2019-11-26 12:20:43 -08:00
Nick Lewycky
284948b6d4 Refactor so as to convert ExtraInfo when potentially canonicalizing.
It seemed like a good idea at the time, but in practice we discard the extra info all or almost all of the time.

This also introduces a new bug. In an operation like multiply, it's valid to multiply two values, one with a pending NaN and one without. As written, in the SIMD case (because of the two kinds of pending in play), we assert.
2019-11-26 12:20:43 -08:00
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
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
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
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