Nick Lewycky
84b32ed2cd
cargo fmt
2020-06-18 16:46:45 -07:00
Nick Lewycky
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
Nick Lewycky
30add15904
make lint cleanup
2020-06-18 15:50:35 -07:00
Nick Lewycky
27a0613e57
Remove unused use line.
2020-06-18 15:47:00 -07:00
Nick Lewycky
8edaf2d617
cargo fmt
2020-06-18 15:46:11 -07:00
Nick Lewycky
54c7b6f876
In trampoline generation, ensure all custom sections are eh frames.
...
.eh_frames may refer to the trampoline, but it is impossible to encode such a relocation. The optional relocation "self-referential" target is replaced with a better named mandatory argument. The value will be discarded in trampoline generation with the rest of the .eh_frame.
2020-06-18 15:37:08 -07:00
Nick Lewycky
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
Nick Lewycky
8d11d3fc52
Remove gimli leftovers.
2020-06-18 15:35:39 -07:00
Nick Lewycky
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
Nick Lewycky
52eae576fc
Record the .eh_frame sections from each .o file.
2020-06-18 15:34:23 -07:00
Syrus
30516b5930
Improved docs
2020-06-18 13:24:41 -07:00
Syrus
769ffebb61
Improved feature-generation to be compiler-based
2020-06-18 02:11:54 -07:00
Syrus
422051ebe5
Simplified compiler config names
2020-06-18 01:36:25 -07:00
Syrus
99bd98458a
Improved compiler configurations
2020-06-17 22:47:32 -07:00
Syrus
8649f2eb79
Remove target from CompilerConfig
2020-06-17 20:26:50 -07:00
Syrus
e062e87d8b
Refactored Compilers
2020-06-17 19:17:06 -07:00
losfair
9d27bd2318
Merge remote-tracking branch 'origin/master' into middleware
2020-06-18 00:41:42 +08:00
Syrus
03494ac1a2
Unify trampolines in Compilation object
2020-06-16 20:11:47 -07:00
losfair
69ce68c31a
Merge remote-tracking branch 'origin/master' into middleware
2020-06-17 00:52:20 +08:00
Syrus
b00f899913
Update to Cranelift 0.65, wasmparser 0.57
2020-06-15 18:00:48 -07:00
losfair
1bbaafb819
Middleware for LLVM.
2020-06-16 00:56:43 +08:00
Syrus
b01350110b
Merge branch 'master' into cranelift-update
...
# Conflicts:
# Cargo.lock
# lib/compiler/src/lib.rs
# lib/compiler/src/target.rs
2020-06-12 14:28:08 -07:00
Syrus
8db235538a
Improve code based on comments
2020-06-12 12:46:16 -07:00
losfair
af46df5e4c
Merge remote-tracking branch 'origin/master' into middleware
2020-06-13 00:55:47 +08:00
Syrus
c514104e3e
Merge branch 'master' into cranelift-update
2020-06-12 04:43:11 -07:00
Syrus
6924a9de08
Improved docs
2020-06-11 23:34:20 -07:00
Syrus
bea005a534
Fix cross-compilation
2020-06-11 16:24:07 -07:00
Syrus
523c95903a
Merge branch 'master' into cranelift-update
...
# Conflicts:
# lib/compiler-cranelift/Cargo.toml
2020-06-11 15:48:17 -07:00
Syrus
1e85e0d528
Update version to 1.0.0-alpha.1
2020-06-11 15:31:29 -07:00
Syrus
8e24589cff
Merge branch 'master' into cranelift-update
...
# Conflicts:
# lib/compiler-cranelift/Cargo.toml
2020-06-11 09:58:42 -07:00
Syrus
36223364e0
Updated Wasmer versions to 1.0
2020-06-11 09:52:26 -07:00
Syrus
e2cafd07da
Improved compilation with Dwarf
2020-06-10 21:37:36 -07:00
Nick Lewycky
dc5c6dd10a
Always put allocas at the beginning of the entry block.
...
Fixes a bug where we allocated stck space for struct return in every call of a function in a loop.
2020-06-08 22:01:22 -07:00
Syrus
5ec1addae1
Use middleware reader
2020-06-08 13:30:38 -07:00
Nick Lewycky
1c3ea9f867
Fix bug packing return values in dynamic function trampoline.
2020-06-06 22:39:52 -07:00
Nick Lewycky
51007692d6
Factor out value expensive to compute value.
2020-06-06 21:02:10 -07:00
Nick Lewycky
cbc7dc8454
Add multi-value-import tests.
...
Also fix implementation of trampolines in LLVM.
2020-06-06 21:02:10 -07:00
Nick Lewycky
ce543fd4ed
NFC. Don't re-lookup frame. It can't have changed, simply reorder operations.
2020-06-06 21:02:10 -07:00
Nick Lewycky
b2c0ef4f95
NFC. Use const_zero() method or free function instead of const_int(0) and const_float(0.0).
2020-06-06 21:02:10 -07:00
Syrus Akbary
616d475785
Update lib/compiler-llvm/src/config.rs
...
Co-authored-by: nlewycky <nick@wasmer.io >
2020-06-04 16:15:58 -07:00
Syrus
fa6de35944
Added support for custom cpu features
2020-06-04 15:50:03 -07:00
Nick Lewycky
fcbffb0b3e
cargo fmt
2020-06-02 17:15:57 -07:00
Nick Lewycky
153a32a9cd
Factor this complex iterator into its own variable.
2020-06-02 17:15:31 -07:00
nlewycky
75b1f4c725
Call blocktype_params_results once to get params and results.
...
Co-authored-by: Syrus Akbary <me@syrusakbary.com >
2020-06-02 17:15:22 -07:00
Nick Lewycky
1990e83ca9
Add two new functions to abi.rs, is_sret and pack_values_for_register_return.
...
Pull the implementations out of wasm.rs and code.rs respectively, and simplify them.
2020-06-02 16:50:46 -07:00
Nick Lewycky
2e68b04e24
Make this match return a CompileError instead of use unimplemented!.
2020-06-02 15:54:22 -07:00
Nick Lewycky
870f241fb7
cargo clippy
2020-06-02 15:46:18 -07:00
Nick Lewycky
a03a5e1775
Also make type_to_llvm_ptr return a CompileError instead of using unimplemented!.
2020-06-02 15:46:18 -07:00
Nick Lewycky
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
Nick Lewycky
04f2db1b82
Export wptype_to_type from wasmer_compiler.
...
Also fix up its error message when it fails.
Use it in compiler-llvm and remove one of compiler-llvm's copies of this function.
2020-06-02 15:45:31 -07:00