Nick Lewycky
1a7f00f0af
Rewrite Min/Max to handle all cases correctly.
...
Fixes 545 spectest failures.
2019-10-03 18:19:12 -07:00
Mark McCaskey
c77cbc1f40
Prepare for 0.8.0 release
2019-10-02 15:40:35 -07:00
Jordan Danford
9be72e6808
Fix some other files too
2019-09-30 22:50:04 -07:00
Brandon Fish
c69cdeca9b
Update cranelift backend to fork version 0.44.0
2019-09-25 23:37:39 -05:00
Syrus
7bf306eb27
Use flat-square style in downloads button
2019-09-24 13:42:17 -07:00
Syrus
621ef56ab6
lmproved READMEs to use Azure Pipelines badges and better lgo
2019-09-24 13:36:31 -07:00
Brandon Fish
a1a88c6eb8
Use the default features for wasmparser
2019-09-21 13:59:08 -05:00
Brandon Fish
f48d6f6690
Cranelift backend update to fork of clif version 0.43.1
2019-09-21 13:06:54 -05:00
Mark McCaskey
bf396ec76d
Remove patch version in deps when not necessary
2019-09-20 16:11:09 -07:00
Patrick Ventuzelo
726269a52c
fix missing info error
2019-09-17 12:05:00 +02:00
Patrick Ventuzelo
4190f01195
remove panic and unimplemented in llvm-backend and runtime-core
2019-09-17 12:03:03 +02:00
Nick Lewycky
59597b9e83
Switch from PIC+Default (small) to Static+Large. Should fix flaky test failures.
2019-09-16 10:49:39 -07:00
Nick Lewycky
8dd82c05e6
Implement atomic load and store instructions with actual atomics in the LLVM backend.
...
Includes a run of `cargo update` to pick up the newer inkwell required.
2019-09-13 12:05:55 -07:00
Mark McCaskey
33811cde37
Fix mistake in version update; generate lock file
2019-09-12 12:49:11 -07:00
Mark McCaskey
0f4d266e4e
Prepare for 0.7.0 release
2019-09-12 12:44:38 -07:00
dependabot-preview[bot]
009bb67686
Bump lazy_static from 1.3.0 to 1.4.0
...
Bumps [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs ) from 1.3.0 to 1.4.0.
- [Release notes](https://github.com/rust-lang-nursery/lazy-static.rs/releases )
- [Commits](https://github.com/rust-lang-nursery/lazy-static.rs/compare/1.3.0...1.4.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-09 23:02:16 +00:00
Syrus
d8471e2b6a
Improved docs with custom logo and favicon
2019-09-03 17:06:31 -07:00
dependabot-preview[bot]
616b768529
Bump winapi from 0.3.7 to 0.3.8
...
Bumps [winapi](https://github.com/retep998/winapi-rs ) from 0.3.7 to 0.3.8.
- [Release notes](https://github.com/retep998/winapi-rs/releases )
- [Commits](https://github.com/retep998/winapi-rs/compare/0.3.7...0.3.8 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-02 09:11:48 +00:00
losfair
212e2be166
Remove -fno-rtti
2019-08-22 22:58:08 -07:00
losfair
613e4de9fc
Fix LLVM object loader exceptions.
2019-08-22 18:57:26 -07:00
losfair
bdcd73cd63
Unblock signals in LLVM trap handler.
2019-08-22 17:45:52 -07:00
losfair
f503764780
Restore previous unwind_state.
2019-08-22 17:22:33 -07:00
losfair
d7c5bb904e
Only disallow dead code in llvm-backend for non-Windows environments.
2019-08-22 13:32:35 -07:00
losfair
6534c28aed
Allow dead code in llvm-backend.
2019-08-22 13:30:50 -07:00
losfair
e89ab43b98
Fix unused 'stackmaps' and 'module_info' on Windows
2019-08-22 13:25:52 -07:00
losfair
d868445d09
Fix unused import 'vm' on Windows
2019-08-22 13:19:46 -07:00
losfair
eef38429fc
Fix unused imports on Windows.
2019-08-22 13:14:05 -07:00
losfair
86814a1920
Merge remote-tracking branch 'origin/master' into feature/llvm-osr
2019-08-22 10:47:39 -07:00
losfair
c7377a465f
Merge remote-tracking branch 'origin/master' into feature/llvm-osr
2019-08-21 15:49:25 -07:00
dependabot-preview[bot]
5d4b78e880
Bump nix from 0.14.1 to 0.15.0
...
Bumps [nix](https://github.com/nix-rust/nix ) from 0.14.1 to 0.15.0.
- [Release notes](https://github.com/nix-rust/nix/releases )
- [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nix-rust/nix/commits )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-21 22:36:56 +00:00
losfair
b0beb28ea7
Fix unused import on Windows.
2019-08-21 15:32:20 -07:00
losfair
56e735349d
Format everything
2019-08-21 15:23:56 -07:00
losfair
53ebcc355a
Disable LLVM stackmap on Windows
2019-08-21 15:23:11 -07:00
losfair
08ab8d16e1
Handle SIGILL in LLVM.
2019-08-21 15:05:10 -07:00
losfair
74faaa3be8
Merge branch 'fix/llvm-trap-windows' into feature/llvm-osr
2019-08-21 15:02:17 -07:00
Nick Lewycky
e6ec261cd5
Remove commented out code.
2019-08-21 15:01:21 -07:00
losfair
bf9d915635
Fix a few issues from PR comments.
2019-08-21 14:53:33 -07:00
losfair
bf471fbc24
Cleanup LLVM object loader.
2019-08-21 11:08:23 -07:00
Nick Lewycky
2882c75957
No need to emit any alignment check for byte-aligned accesses.
2019-08-20 11:30:30 -07:00
Nick Lewycky
dcf70167da
Fix i64.atomic.load32_u and all alignment checks.
2019-08-20 11:03:22 -07:00
Nick Lewycky
0ba73ac50c
Correct flipped misalignment test.
2019-08-20 10:39:53 -07:00
losfair
90dcdfec1c
Cargo fmt
2019-08-19 19:17:50 -07:00
losfair
4e6267aa57
Correctly handle more than 5 WASM function parameters when reading state of a LLVM context.
2019-08-19 19:12:33 -07:00
losfair
124ad73e8a
Merge remote-tracking branch 'origin/master' into feature/llvm-osr
2019-08-19 13:06:59 -07:00
Nick Lewycky
c8378329c1
Expound upon Fence's empty implementation being correct.
2019-08-19 10:51:14 -07:00
Nick Lewycky
aecce465c7
Implement atomic.rmw operations including atomic.rmw.cmpxchg.
2019-08-19 10:51:14 -07:00
Nick Lewycky
f2077c204b
Implement fence correctly, atomic load/store as non-atomic.
...
Adds trap for misaligned accesses.
2019-08-19 10:51:14 -07:00
Brandon Fish
bccbbb3d8b
Add deny nonstandard-style and unused-mut lints
2019-08-15 20:18:29 -06:00
losfair
afa0600701
Cargo fmt
2019-08-15 19:13:00 -07:00
losfair
7028df23ef
Allow only integers for LLVM function param/return values.
2019-08-15 19:07:03 -07:00
losfair
98ef9182d7
Run clang-format and cargo fmt
2019-08-14 16:35:40 -07:00
losfair
0e0573c73c
Merge remote-tracking branch 'origin/master' into feature/llvm-osr
2019-08-14 16:33:26 -07:00
Nick Lewycky
2f3c9c3e2f
Mark memory.size VM intrinsics as not modifying state, and throw.trap/breakpoint as functions which do not return.
2019-08-13 21:50:54 -07:00
Brandon Fish
0bf33662d1
Add missing LLVM imported memory functions
2019-08-13 20:07:55 -06:00
Brandon Fish
137ac206af
Return compile error (llvm) for setting immutable global
2019-08-13 17:59:04 -06:00
Brandon Fish
d695bd0c84
Update WABT dep to fixe names spectests
2019-08-12 15:35:32 -06:00
losfair
44f71759f6
Use Vec::with_capacity in various places.
2019-08-10 03:23:29 +08:00
losfair
b8c18215aa
Refactor tier switching code
2019-08-10 02:32:14 +08:00
Syrus
d39d4b5f6d
Remove structopt dependency from LLVM
2019-08-08 19:42:41 -07:00
Nick Lewycky
b2c4501357
Add support for backend flags. Backend flags are opaque to src/bin/wasmer.rs.
...
Use them to implement three features in the LLVM backend, getting a valid ELF object file, the post-optimization LLVM IR and the pre-optimization LLVM IR.
Presently they are also global to the backend which is not ideal.
2019-08-08 17:05:31 -07:00
Nick Lewycky
02f1d73f88
Reformat.
2019-08-08 13:55:44 -07:00
Nick Lewycky
c4d4a6888c
Fix a bug where we would fail to find llvm-config-M or llvm-config-M-N when llvm-sys would.
...
Update to match features in newer llvm-sys.
2019-08-08 13:46:40 -07:00
losfair
c1619026d5
Swap code lazily when tiering up from singlepass to LLVM.
...
Does not handle long-running functions, but should work at least.
2019-08-09 04:26:17 +08:00
losfair
0d604b754b
Commented out code for saving semantics of internal values.
2019-08-08 21:54:39 +08:00
losfair
b113f5a24b
longjmp turns out to work on Windows. Remove custom unwinding code.
2019-08-08 03:19:19 +08:00
losfair
4b1d337ebe
Custom setjmp/longjmp to avoid SEH. (will it work?)
2019-08-07 00:38:42 +08:00
losfair
b50fd31adb
Use setjmp/longjmp to handle LLVM exceptions.
2019-08-07 00:06:35 +08:00
dependabot-preview[bot]
a036a306d5
Bump regex from 1.2.0 to 1.2.1
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.2.0...1.2.1 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-05 08:36:27 +00:00
Brandon Fish
2f70a199e4
Add deny dead_code lint and fix one error
2019-08-01 20:46:35 -06:00
Nick Lewycky
83aa9c67c7
Replace throw() with noexcept. Unlike throw(), noexcept indicates that the function does not throw.
...
Before C++17, throw() was equivalent to wrapping the function in a try {} catch
{ std::unexpected(); }. In C++17 throw() was made equivalent to noexcept and
in C++20 throw() was removed.
2019-08-01 17:13:23 -07:00
Nick Lewycky
ac49e57c2d
Run clang-format-8 over the C++ code. No functionality change.
2019-08-01 17:12:46 -07:00
Nick Lewycky
536f9813dc
Implement InternalEvent::Breakpoint in the llvm backend.
...
Enable now-working metering unit tests when run with the llvm backend.
2019-08-01 12:44:25 -07:00
losfair
9ed5094f86
Resolve semantics for more values.
2019-08-01 23:28:39 +08:00
Syrus
0dfa1f68a8
Formatted code
2019-07-31 23:51:12 -07:00
Syrus
ebce7d0371
Updated dependencies
2019-07-31 23:42:54 -07:00
Syrus
a6461c3b14
Removed explicit hashbrown dependency
2019-07-31 23:18:38 -07:00
Syrus
6245daaa84
Update dependencies to latest versions
2019-07-31 23:04:03 -07:00
Mark McCaskey
20e424c11e
update wasmparser and clif-fork dependencies
2019-08-01 10:13:25 +09:00
nlewycky
54b5c642dc
Merge branch 'master' into features/llvm-metering
2019-07-31 13:13:07 -07:00
Nick Lewycky
931d556de1
Add support for internal fields.
2019-07-31 13:10:51 -07:00
Syrus
fccf68c734
Updated version to 0.6.0
2019-07-31 10:28:45 -07:00
Syrus Akbary
0256a6eb88
Merge branch 'master' into features/llvm-windows
2019-07-30 17:38:36 -07:00
Syrus
97c6956d98
Added llvm in windows support to Changelog
2019-07-30 15:56:25 -07:00
Syrus
22f8b3f3dc
Improved LLVM compilation for Unix
2019-07-30 15:32:21 -07:00
Syrus
89178732cc
Fixed unix errors
2019-07-30 15:23:03 -07:00
Nick Lewycky
bdb1c4c44e
Fix inkwell assertion due to treating vector as float. Fix llvm backend fatal error due to missing support for fminimum/fmaximum.
2019-07-30 14:59:04 -07:00
Syrus Akbary
12f8f3d085
First working version of LLVM in Windows
2019-07-30 14:47:53 -07:00
Nick Lewycky
3e7545a278
Fix the Trunc[SU] operations, makes conversions.wast pass.
2019-07-30 12:42:25 -07:00
losfair
0a7f95ee06
Allow a range of instruction offsets to be used in ip lookup.
2019-07-30 22:25:15 +08:00
Nick Lewycky
11f66d287b
Improve NaN handling by canonicalizing NaNs before most operations.
...
Not handled here is @llvm.minnum and @llvm.maxnum which should be replaced with
@llvm.minimum and @llvm.maximum, but using those currently leads to LLVM backend
fatal errors.
2019-07-28 22:53:48 -07:00
Nick Lewycky
2f021f0e2a
LLVM srem is undefined in cases where i32.rem_s and i64.rem_s are defined.
2019-07-28 22:53:48 -07:00
losfair
efb5277d1d
Stack parsing now works with LLVM.
2019-07-27 02:50:49 +08:00
Marek Vavruša
659f088c4f
llvm-backend: export FunctionCodeGenerator and ModuleCodeGenerator
...
This is in line with the singlepass-backend to be able to use LLVM MCG with
a StreamingCompiler.
2019-07-24 18:46:35 -07:00
Syrus
76daa7b3fd
Improved Wasmer Backends documentation
2019-07-24 18:06:59 -07:00
losfair
cc4f0e31a6
TwoHalves & trying to get cowsay to compile again
2019-07-25 02:44:28 +08:00
Nick Lewycky
f763de94ab
Update to wabt 0.9.0.
2019-07-24 10:03:08 -07:00
Nick Lewycky
16fe3ce0af
Merge branch 'master' into simd
2019-07-23 13:51:15 -07:00
Nick Lewycky
fe2bd6ad6c
Add missing names to LLVM instructions.
2019-07-23 13:19:27 -07:00
Mark McCaskey
ad7e3b52d3
Prepare for release of 0.5.7
2019-07-23 11:20:59 -07:00
Nick Lewycky
18307bb79c
Improve panic/unreachable/unimplemented usage. Refactor a little.
2019-07-22 12:15:56 -07:00