ec6c990663
Do all three mapping operations in a single thread pool.
2021-01-22 13:30:21 -08:00
184edbe7e4
Add a TODO referring to a feature request on Rayon.
2021-01-21 22:14:04 -08:00
fffdde0217
Apply rustfmt changes that the CI brought up.
2021-01-21 17:31:40 -08:00
8ee2cf55ad
Improve parallelism of llvm builds with native or object file engine.
2021-01-21 17:27:34 -08:00
13e6f29c29
Set compiler config to be owned (following wasm-c-api)
2020-12-04 02:39:19 -08:00
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
9d8f315d4c
Update module info in-place.
2020-11-23 13:42:51 -08:00
9bd2c47730
Upgraded Cranelift to 0.67
2020-10-29 20:19:16 -07:00
e4981c4f66
Add a get_abi(TargetMachine) method instead of creating X86_64SystemV directly.
...
A new Arm64Linux ABI is added but it's an unedited copy of the X86_64SystemV one so far.
A bunch of cleanups from clippy. Use matches! more, don't pass &Box<dyn Abi>.
2020-10-20 14:46:45 -07:00
5d40787856
Add a compiler-llvm CompilerFunctionKind for the whole module which can occur with the experimental API for engine-native.
...
Since it's no longer per-function, rename CompilerFunctionKind to CompilerKind.
2020-08-20 23:28:07 -07:00
91414df670
NFC. Import the inkwell::DLLStorageClass name.
2020-08-18 14:20:45 -07:00
9c5e682585
Export the wasmer metadata when building a DLL.
2020-08-18 14:18:07 -07:00
9e89ee9b7b
Call a callback to emit the merged object file.
2020-08-17 23:21:36 -07:00
6e974b92cd
Run cargo fmt
2020-08-13 18:12:43 -07:00
5049c543dc
Rename wasm-common
crate to wasmer-types
2020-08-13 17:59:26 -07:00
15b3a35e0c
Don't clone function body data.
2020-08-07 14:31:36 -07:00
037922bbf2
Change this API to return an Option that's None when it's unimplemented and Some(Result<...>) when it is.
2020-08-07 14:26:53 -07:00
701973ffae
Make Native Engine work with conditional native compilation
2020-08-07 11:35:42 -07:00
c68e7da972
Emit dynamic trampoline for each function index, not just each signature.
...
Emit names for trampolines when building through that experimental native pipeline.
2020-08-06 13:39:41 -07:00
2c2da8ec3c
Wire up experimental_native_compile_module
for LLVM.
...
Move Symbol and SymbolRegistry to wasmer_compiler crate.
2020-08-05 17:44:52 -07:00
0e6bc3191f
Fix the build post-merge that picked up SymbolRegistry.
2020-08-05 17:26:00 -07:00
afe568c5d3
Merge branch 'master' into llvm-native
2020-08-05 17:17:52 -07:00
02c62657f5
Add experimental_native_compile_module
and initial implementation changing native engine to use it.
2020-08-05 17:12:17 -07:00
bf0df80551
Rename CompilationNamer to SymbolRegistry.
...
SymbolRegistry is invertible so we can remove the wrappers.
2020-08-05 15:07:56 -07:00
9ca46f4f2d
Include trampolines in the generated object file.
2020-08-05 14:20:47 -07:00
0b62c775de
Verify the post-merge bitcode before codegen.
2020-08-05 12:12:47 -07:00
8057083d1f
Initial commit of LLVMCompiler::compile_native_object.
...
Entirely untested.
Works by doing function generation including optimization passes in parallel, then generating bitcode and passing that along to be reparsed into a new module and then module-linked into a single merged module to be emitted as an object file.
2020-08-05 11:25:56 -07:00
64448dda40
Create new InvertibleCompilationNamer and use it to name generated functions.
...
Fixes build of rustc_binary2.wasm with --llvm.
2020-08-05 10:31:00 -07:00
b4270525f0
Create new InvertibleCompilationNamer and use it to name generated functions.
...
Fixes build of rustc_binary2.wasm with --llvm.
2020-08-04 16:50:55 -07:00
a732159514
Use better naming for module functions
2020-07-26 12:02:45 -07:00
b57a28edc7
Removed Memory plans in favor of direct styles
2020-07-07 16:50:08 -07:00
98f2e8fe26
Remove TablePlans
2020-07-07 15:10:03 -07:00
84b32ed2cd
cargo fmt
2020-06-18 16:46:45 -07:00
b527127d0f
load_object_file is returning an increasingly complex object.
...
Group the data from compilation of a function into its own struct and return that.
2020-06-18 16:43:43 -07:00
30add15904
make lint cleanup
2020-06-18 15:50:35 -07:00
27a0613e57
Remove unused use
line.
2020-06-18 15:47:00 -07:00
8edaf2d617
cargo fmt
2020-06-18 15:46:11 -07:00
310ac6b44c
Shrink the 0-length CIE. The previous one came from /bin/ls on my machine, the new one is based on the CIE description in the DWARF 3 spec (the LSB description leaves out too much detail, like the size of the version field).
...
Formatting cleanup.
2020-06-18 15:37:06 -07:00
8d11d3fc52
Remove gimli leftovers.
2020-06-18 15:35:39 -07:00
e9d5c7896c
Merge .eh_frame without interpretation. Add a 0-CIE to the end.
...
Add unfinished attempt at using gimli, to be deleted but recorded in case we need it in the future.
2020-06-18 15:35:37 -07:00
52eae576fc
Record the .eh_frame sections from each .o file.
2020-06-18 15:34:23 -07:00
422051ebe5
Simplified compiler config names
2020-06-18 01:36:25 -07:00
8649f2eb79
Remove target from CompilerConfig
2020-06-17 20:26:50 -07:00
e062e87d8b
Refactored Compilers
2020-06-17 19:17:06 -07:00
03494ac1a2
Unify trampolines in Compilation object
2020-06-16 20:11:47 -07:00
e2cafd07da
Improved compilation with Dwarf
2020-06-10 21:37:36 -07:00
7bdd387474
Use blocktype_params_results
in lieu of blocktype_to_types
.
...
Remove read_info.rs entirely.
Add `to_compile_error` that converts a WasmResult into a Result<_, CompileError>, use it with `wptype_to_type`. This is a candidate for being moved into shared code.
Many functions had to change to deal with propagating CompileError.
2020-06-02 15:46:16 -07:00
abbd39c50b
Refactor trampoline compilation
2020-05-29 19:37:03 -07:00
45e80dec7b
Add support for dynamic trampolines in compiler-llvm.
2020-05-29 16:56:41 -07:00
a47a3068f4
Remove #![allow(unused_imports, dead_code)] and fix resulting issues.
...
Fix nearly-all issues found by clippy too.
2020-05-20 17:18:23 -07:00