6924a9de08
Improved docs
2020-06-11 23:34:20 -07:00
bea005a534
Fix cross-compilation
2020-06-11 16:24:07 -07:00
523c95903a
Merge branch 'master' into cranelift-update
...
# Conflicts:
# lib/compiler-cranelift/Cargo.toml
2020-06-11 15:48:17 -07:00
1e85e0d528
Update version to 1.0.0-alpha.1
2020-06-11 15:31:29 -07:00
8e24589cff
Merge branch 'master' into cranelift-update
...
# Conflicts:
# lib/compiler-cranelift/Cargo.toml
2020-06-11 09:58:42 -07:00
36223364e0
Updated Wasmer versions to 1.0
2020-06-11 09:52:26 -07:00
e2cafd07da
Improved compilation with Dwarf
2020-06-10 21:37:36 -07:00
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
5ec1addae1
Use middleware reader
2020-06-08 13:30:38 -07:00
1c3ea9f867
Fix bug packing return values in dynamic function trampoline.
2020-06-06 22:39:52 -07:00
51007692d6
Factor out value expensive to compute value.
2020-06-06 21:02:10 -07:00
cbc7dc8454
Add multi-value-import tests.
...
Also fix implementation of trampolines in LLVM.
2020-06-06 21:02:10 -07:00
ce543fd4ed
NFC. Don't re-lookup frame. It can't have changed, simply reorder operations.
2020-06-06 21:02:10 -07:00
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
616d475785
Update lib/compiler-llvm/src/config.rs
...
Co-authored-by: nlewycky <nick@wasmer.io >
2020-06-04 16:15:58 -07:00
fa6de35944
Added support for custom cpu features
2020-06-04 15:50:03 -07:00
fcbffb0b3e
cargo fmt
2020-06-02 17:15:57 -07:00
153a32a9cd
Factor this complex iterator into its own variable.
2020-06-02 17:15:31 -07:00
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
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
2e68b04e24
Make this match return a CompileError instead of use unimplemented!.
2020-06-02 15:54:22 -07:00
870f241fb7
cargo clippy
2020-06-02 15:46:18 -07:00
a03a5e1775
Also make type_to_llvm_ptr return a CompileError instead of using unimplemented!.
2020-06-02 15:46:18 -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
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
fa3242ce11
Fix bug updating phi nodes when branching up.
2020-06-02 15:44:39 -07:00
c3d26ef639
Reset the value stack correctly when entering the 'else' side of an if-else.
2020-06-02 15:44:39 -07:00
46159ee2a6
Fix value stack after return instruction in multi-value function.
2020-06-02 15:44:39 -07:00
95c55ab40d
NFC. Pull this mapping into two mappings, I think it's nicer.
2020-06-02 15:44:39 -07:00
f39a38779b
Update function prologue, epilogue and CFG instructions.
...
The function prologue now skips the sret argument if there is one.
The function epilogue packs values before return.
Br/BrIf/BrTable/Block/Loop/If/Else/End are updated to support multiple values.
As part of this, `read_info::blocktype_to_type` is removed. `blocktype_to_types` and `blocktype_to_param_types` take its place.
CtxType::func is updated to cache and return attributes. The allows the caller to place 'sret' on the call site, even though it's present on the FunctionValue. This helps some utility functions that check the callsite for presence of sret.
2020-06-02 15:44:39 -07:00
ba8a6d6db6
Update trampoline code and use get_vmctx_ptr_param
.
2020-06-02 15:44:39 -07:00
83195a1498
Use abi::func_type_to_llvm
when producing an LLVM function type from wasm types.
...
This renames `func_sig_to_llvm` to `func_type_to_llvm` and deletes the old version in intrinsics::. The new version returns a list of attributes along with the type. Update callers to set these attributes on the function or call site.
2020-06-02 15:44:39 -07:00
e5ea5789ea
Use args_to_call
and rets_from_call
in both calls and indirect calls.
2020-06-02 15:44:39 -07:00
2812a3330f
Use abi::args_to_call
in indirect calls too.
2020-06-02 15:44:39 -07:00
f762690dfb
Use abi::args_to_call
when placing a direct call.
2020-06-02 15:44:39 -07:00
4f9d8a5012
Initial commit of SysV ABI implementation.
2020-06-02 15:44:39 -07:00
14188bed44
Revert "Ignore multi-value errors on LLVM too, for now."
...
This reverts commit 486dedc601
.
2020-06-02 15:44:39 -07:00
6e98f39568
Remove commented-out debugging cruft.
...
This was made obsolete by PR #79 .
2020-06-02 11:03:36 -07:00
367dff887a
Update lib/compiler-llvm/src/config.rs
...
Co-authored-by: nlewycky <nick@wasmer.io >
2020-06-01 14:12:57 -07:00
1b84525921
Update lib/compiler-llvm/src/trampoline/wasm.rs
...
Co-authored-by: nlewycky <nick@wasmer.io >
2020-06-01 14:12:50 -07:00
903c1b23be
Update lib/compiler-llvm/src/translator/code.rs
...
Co-authored-by: nlewycky <nick@wasmer.io >
2020-06-01 14:12:44 -07:00
18528fc251
Merge branch 'master' into llvm-callbacks
2020-06-01 13:55:36 -07:00
2a9ce436f9
Added LLVM callbacks
2020-06-01 13:54:26 -07:00
311b8d8d24
NFC. Borrow a str instead of a String. Pointed out by cargo clippy.
2020-06-01 11:04:13 -07:00
abbd39c50b
Refactor trampoline compilation
2020-05-29 19:37:03 -07:00
28c6462f76
Merge branch 'master' into llvm-dynamic-trampoline
2020-05-29 17:00:57 -07:00
45e80dec7b
Add support for dynamic trampolines in compiler-llvm.
2020-05-29 16:56:41 -07:00
d597a97aa1
Annotate atomicrmw and cmpxchg with volatile if needed.
2020-05-28 14:04:19 -07:00
fd37486040
Update to a newer inkwell.
2020-05-28 14:04:19 -07:00
17bca3cf8e
Use minor versions instead of patch
2020-05-27 17:42:47 -07:00