Commit Graph

520 Commits

Author SHA1 Message Date
Nick Lewycky
cc27bb2216 Fix some verifier errors in the 64-bit computations. 2021-03-01 15:50:47 -08:00
Nick Lewycky
c422fdeba2 Correct implementation of shift and rotate.
The existing implementations worked on x86-64 when instructions were emitted, but relied on UB per the LLVM IR. Add a test which checks the behaviour when the inputs are constants, so that the LLVM IR constant folder can see and exploit the UB.
2021-03-01 15:00:18 -08:00
Nick Lewycky
40f40bb7d4 RefNull may return any reference type. 2021-03-01 13:40:04 -08:00
Nick Lewycky
3c6168d0bb Split funcref and externref into separate LLVM types, add anyref_ty. 2021-03-01 13:22:56 -08:00
Nick Lewycky
7d9dd4d349 Correct the type of vmctx on these functions. 2021-03-01 12:17:38 -08:00
Nick Lewycky
b14afa1342 Implement all reference types instructions in compiler-llvm.
Remove spectest ignores for reference types tests on llvm.

Extend llvm ABIs to pass externref and funcref.

Expose all libcalls through the Libcalls enum.

Add support for all libcalls to llvm object_file.rs, even libcalls that we aren't using.

Add missing no_mangle to libcalls.
Change 'memory' to 'memory32' in libcalls in preparation for the memory64 proposal.
Remove 'local' from 'wasmer_local_memory_copy' in libcalls to fit naming convention.
Add mangling of externref and funcref for llvm-debug-dir.
Mark 'wasmer_func_ref' readonly.
2021-03-01 11:53:12 -08:00
Nick Lewycky
1e777f9a85 Move the test that a table index is in bounds to a point before we deref it.
This fixes the type of trap produced.
2021-02-24 11:19:19 -08:00
dependabot[bot]
3bc00dfbaf chore(deps): bump goblin from 0.2.3 to 0.3.4
Bumps [goblin](https://github.com/m4b/goblin) from 0.2.3 to 0.3.4.
- [Release notes](https://github.com/m4b/goblin/releases)
- [Changelog](https://github.com/m4b/goblin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/m4b/goblin/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-12 13:53:24 +00:00
Mark McCaskey
6e3f835db8 Merge branch 'master' into feature/reference-types 2021-02-10 06:36:36 -08:00
Mark McCaskey
0a17424368 Update wasmparser and core spectests 2021-02-09 11:57:54 -08:00
Mark McCaskey
6cfcc92d52 Implement further for compiler-cranelift; add ExternRef 2021-02-08 12:49:15 -08:00
Nick Lewycky
9e1cec01be Prepare for 1.0.2 release 2021-02-04 19:44:49 -08:00
Mark McCaskey
ecf891e0ac Add extra layer of indirection for funcref, update tables
This is still a WIP, cranelift is passing spectests but singlepass has 3
failures and LLVM is not implemented correctly
2021-02-03 07:47:25 -08:00
Nick Lewycky
6192143102 NFC. This utility function moved to inkwell. 2021-02-02 12:03:10 -08:00
Nick Lewycky
d247dc088d Bump to llvm 11! 2021-02-01 10:04:34 -08:00
Nick Lewycky
e436788ee3 Update to latest inkwell. 2021-02-01 10:03:32 -08:00
Nick Lewycky
657d3a52dd Add dereferenceable attribute to the vmctx pointer. 2021-01-27 11:08:13 -08:00
Nick Lewycky
a79a8ed79c Refactor duplicate code for vmctx attributes. 2021-01-26 11:17:13 -08:00
Nick Lewycky
799f1fde66 Add align, nofree and nonnull to vmctx pointer.
Adding dereferenceable is still TODO.
2021-01-26 10:50:50 -08:00
Nick Lewycky
71b9feff08 Use ParallelBridge to remove copies of data out of PrimaryMap. 2021-01-22 13:36:45 -08:00
Nick Lewycky
ec6c990663 Do all three mapping operations in a single thread pool. 2021-01-22 13:30:21 -08:00
Nick Lewycky
184edbe7e4 Add a TODO referring to a feature request on Rayon. 2021-01-21 22:14:04 -08:00
Nick Lewycky
fffdde0217 Apply rustfmt changes that the CI brought up. 2021-01-21 17:31:40 -08:00
Nick Lewycky
8ee2cf55ad Improve parallelism of llvm builds with native or object file engine. 2021-01-21 17:27:34 -08:00
Mark McCaskey
924ffd8797 Prepare for 1.0.1 release 2021-01-12 08:08:19 -08:00
Mark McCaskey
3654cb17a5 Fix RUSTSEC-2021-0003 2021-01-11 12:51:07 -08:00
Mark McCaskey
cac4583b19 Add links on all crates.io badges 2021-01-07 06:48:32 -08:00
Mark McCaskey
0448f729fd Fix up readme files, remove version numbers 2021-01-07 06:36:27 -08:00
Mark McCaskey
bc73789cc0 Prepare for 1.0.0 release 2021-01-05 06:21:03 -08:00
Nick Lewycky
65d8481acf Remove interprocedural optimization passes.
We never have more than one function defined in a module at a time.
2020-12-23 16:25:55 -08:00
Mark McCaskey
1ac42e2e3b Update usage of beta to rc 2020-12-23 11:33:53 -08:00
Mark McCaskey
2d1c03bea0 Prepare for 1.0.0-rc1 release 2020-12-23 11:17:07 -08:00
Simon Warta
271c767785 Replace all usages of to_wasm_error 2020-12-22 09:17:09 +01:00
Simon Warta
9d6fc4a4ba Expose wasmer::LLVMOptLevel 2020-12-17 10:13:07 +01:00
Mark McCaskey
59df6917d8 Prepare for 1.0.0-beta2 release 2020-12-16 07:41:59 -08:00
Syrus Akbary
1ee0146954 Fix all compilation issues simplifying the code 2020-12-04 15:58:38 -08:00
Syrus
13e6f29c29 Set compiler config to be owned (following wasm-c-api) 2020-12-04 02:39:19 -08:00
Mark McCaskey
e928a832a8 Update mentions of alpha to beta 2020-12-02 11:01:54 -08:00
Mark McCaskey
947e7d394f Prepare for 1.0.0-beta1 release 2020-12-01 17:15:46 -08:00
nlewycky
f110c4d308 Merge branch 'master' into feature/middleware 2020-11-30 15:12:02 -08:00
jubianchi
306a3c5f82 chore: Update semver
Closes #1793
2020-11-27 21:41:36 +01:00
Ivan Enderlin
6eaeeeb60c feat: Use the same version of smallvec everywhere. 2020-11-26 16:56:59 +01:00
Nick Lewycky
8ca3693a56 Add support for middleware to experimental_native_compile_module and make it work on compiler-llvm. 2020-11-23 13:56:17 -08:00
losfair
9d8f315d4c Update module info in-place. 2020-11-23 13:42:51 -08:00
losfair
e7dd725c6d Add module info transformation method to ModuleMiddleware. 2020-11-20 14:34:46 -08:00
Nick Lewycky
49b0a4a16a Prepare for 1.0.0-alpha5 release. 2020-11-06 11:50:07 -08:00
Syrus
2387ec07b6 Upgrade dependencies 2020-10-29 22:59:48 -07:00
bors[bot]
1a4cd326e8 Merge #1781
1781: Cranelift upgrade r=syrusakbary a=syrusakbary

<!-- 
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

Upgrade Cranelift to `0.67`. This upgrade also enables all SIMD tests (with one small exception operator that is still not fixed in Cranelift).

<!-- 
Provide details regarding the change including motivation,
links to related issues, and the context of the PR.
-->


Co-authored-by: Syrus <me@syrusakbary.com>
Co-authored-by: Syrus Akbary <me@syrusakbary.com>
2020-10-30 04:47:24 +00:00
Syrus
b123f92f56 Simplified local_decl 2020-10-29 20:19:37 -07:00
Syrus
9bd2c47730 Upgraded Cranelift to 0.67 2020-10-29 20:19:16 -07:00