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
09e057338a
Renamed Module to ModuleInfo
2020-05-19 18:47:50 -07:00
808cf9eb0d
Remove obsolete comment and variables.
...
Expound upon comment. Fix typo.
2020-05-19 11:23:53 -07:00
dff7cf28c9
Fix invalid LLVM IR for global.get/set of imported globals.
...
In passing, refactor global accesses and cache the address computations and values of const globals.
Also includes some cargo fmt fixes.
2020-05-18 14:35:23 -07:00
f20d09fb2d
Fixed LLVM compilation
2020-05-18 13:23:19 -07:00
9981a51f8f
Merge pull request #23 from wasmerio/host-trampolines
...
Improved trampolines adding support for Dynamic functions
2020-05-18 13:12:37 -07:00
aa4aa65d0c
Remove some calls to clone() by using into_iter().
2020-05-18 09:08:33 -07:00
ea05e16b6d
Parse relocations that apply to custom relocations.
...
This rewrites the whole relocation parsing to work properly.
* we no longer use LocalRelocation and simply assign a new SectionIndex as new sections are encountered.
* we no longer use string matching to determine what function applies relocations to what, instead we use the field in the elf section header that tells us
* we no longer merge sections, each section from every function is preserved as an independent custom section in the module.
* we now discover any new sections that need to be pulled in recursively as we parse each section
* many error cases are either handled, or report CompileErrors.
2020-05-18 09:08:33 -07:00
5dfa9faafb
Improve compiler names for trampoline functions
2020-05-17 20:32:42 -07:00
5f8f7a5dc1
Merge branch 'master' into host-trampolines
2020-05-15 20:07:40 -07:00
9a0c2a76a3
Add a list of relocations to custom sections.
2020-05-14 12:22:32 -07:00
1c21e4f927
Make host trampolines work (PoC)
2020-05-13 20:53:54 -07:00
0bd6a0dd6b
Renamed FuncIndex to FunctionIndex
2020-05-04 13:39:12 -07:00
2997be7d88
Renamed FuncType to FunctionType
2020-05-04 13:34:05 -07:00
3a004b3e82
Fix build of compiler-llvm by growing the interface to SectionBody.
2020-05-03 16:08:05 -07:00
fd96c4080e
Merge branch 'master' into frame-info
...
# Conflicts:
# lib/compiler-llvm/src/compiler.rs
# lib/compiler-llvm/src/translator/code.rs
2020-05-01 22:09:26 -07:00
20ad3d608f
Fixed LLVM with new compiler structure
2020-05-01 22:04:33 -07:00