Commit Graph

2341 Commits

Author SHA1 Message Date
Mark McCaskey
5234897989 Improve portability of code by using c_char 2019-12-02 11:30:30 -08:00
bors[bot]
dfc7163b71
Merge #1020
1020: Turn a few more assert!s that should never fire into debug_assert!s. r=nlewycky a=nlewycky

These are here to protect against errors when refactoring more than anything else.


Co-authored-by: Nick Lewycky <nick@wasmer.io>
2019-11-27 01:16:34 +00:00
Nick Lewycky
5a49fe76df Turn a few more assert!s that should never fire into debug_assert!s.
These are here to protect against errors when refactoring more than anything else.
2019-11-26 16:43:17 -08:00
bors[bot]
f6f8780934
Merge #1006
1006: fix 1005 panic sub overflow r=MarkMcCaskey a=pventuzelo

# Description

Fix issue https://github.com/wasmerio/wasmer/issues/1005

# Review

- [x] Add a short description of the the change to the CHANGELOG.md file


Co-authored-by: Patrick Ventuzelo <ventuzelo.patrick@gmail.com>
Co-authored-by: Patrick Ventuzelo <9038181+pventuzelo@users.noreply.github.com>
2019-11-27 00:36:29 +00:00
Nick Lewycky
ff73c5d71b Address review feedback from Mark.
Fix a bug in Operator::Select and add a comment to explain the intention.

Use derived default for ExtraInfo.

Make ExtraInfo associated functions const.

Turn two asserts into debug_asserts.
2019-11-26 12:25:03 -08:00
Nick Lewycky
d1ce8ee20d Give that panic! a message. Also, make it an unreachable!. 2019-11-26 12:20:44 -08:00
Nick Lewycky
fa576093c2 Fix ExtraInfo on F32Add and similar.
We want to ignore the incoming pending NaN state (since the pending will propagate to the output if there was one on the input), and we want to add a new pending NaN state if we can (that is to say, if it isn't cancelled out by both inputs having arithmetic state). Do this by discarding the pending states on the inputs, intersecting them (to keep only the arithmetic state), then union in a pending nan state (which might do nothing, if it's arithmetic).

If the above sounds confusing, keep in mind that when a value is arithmetic, the act of performing the "NaN canonicalization" is a no-op. Thus, being arithmetic cancels out pending NaN states.
2019-11-26 12:20:44 -08:00
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
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