Commit Graph

81 Commits

Author SHA1 Message Date
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