Commit Graph

126 Commits

Author SHA1 Message Date
bjorn3
86d3dc9510 Add prepare_for_function_redefine 2020-11-12 19:39:44 +01:00
bjorn3
03c0e7e678 Rustfmt 2020-11-12 18:58:40 +01:00
bjorn3
cdbbcf7e13 Add plt entries to perf jit map 2020-11-12 18:58:28 +01:00
bjorn3
bf9e5d9448 Use a PLT reference for function relocations in data objects
This ensures that all functions can be replaced without having to
perform relocations again.
2020-11-12 16:41:23 +01:00
bjorn3
8a4749af51 Immediately perform relocations when defining a function 2020-11-12 16:33:04 +01:00
bjorn3
5458473765 Implement PLT relocations for SimpleJIT 2020-11-12 16:19:16 +01:00
bjorn3
eaa2c5b3c2 Implement GOT relocations in SimpleJIT 2020-11-12 15:06:52 +01:00
bjorn3
11a3bdfc6a Catch overflows when performing relocations 2020-11-12 14:13:06 +01:00
bjorn3
b7a93c2321 Remove reloc_block
It isn't called and all reloc sinks either ignore it or panic when it is
called.
2020-11-11 12:36:17 +01:00
bjorn3
1dc27c93a4 Introduce DataDescription::all_relocs to dedup some code 2020-11-11 12:36:17 +01:00
bjorn3
a5501e12a6 Rename functions and data_objects fields 2020-11-11 11:56:41 +01:00
bjorn3
844a52e96a Don't unnecessarily take &self for some ModuleDeclarations methods 2020-11-11 11:43:09 +01:00
bjorn3
79f6f72e78 Remove StackMapSink from SimpleJIT
The stack maps are discarded anyway
2020-11-11 11:43:09 +01:00
bjorn3
ffe9de15fc Enable unreachable_pub lint 2020-11-11 11:43:09 +01:00
bjorn3
d5d5cba8b2 Remove SimpleJITProduct
All of it's methods now have an equivalent on SimpleJitModule
2020-11-11 11:43:02 +01:00
bjorn3
856f799ade Make some things more consistent between define_function and define_function_bytes 2020-11-11 11:38:28 +01:00
bjorn3
2ca2255a4a Move CompiledBlob to a new file 2020-11-11 11:38:28 +01:00
bjorn3
d0706e6f71 Merge finalize_function and perform_relocations 2020-11-11 11:38:28 +01:00
bjorn3
5df5bbbdca Fix usage of default_libcall_names (#2378)
* Fix usage of default_libcall_names

* Add basic cranelift-object test

It is based on a test with the same name in cranelift-simplejit
2020-11-09 10:33:56 -06:00
Andrew Brown
c9e8889d47 Update clippy annotation to use latest version (#2375) 2020-11-09 09:24:59 -06:00
Alex Crichton
8af2dbfbac Allow offloading compilation in cranelift-object (#2371)
This commit is a slight refactoring of the `Module` trait and backend in
`cranelift-object`. The goal is to enable parallelization of compilation
when using `cranelift-object`. Currently this is difficult because
`ObjectModule::define_function` requires `&mut self`. This instead
soups up the `define_function_bytes` interface to handle relocations so
compilation can happen externally before defining it in a `Module`. This
also means that `define_function` is now a convenience wrapper around
`define_function_bytes`.
2020-11-06 09:56:44 -06:00
Alex Crichton
ab1958434a Bump to 0.21.0 (#2359) 2020-11-05 09:39:53 -06:00
bjorn3
cb2d180f2a Remove SimpleJIT prefix from some private types 2020-10-12 14:09:03 +02:00
bjorn3
69513ee85e Merge CompiledFunction and CompiledData 2020-10-12 14:02:37 +02:00
bjorn3
6b0d246b24 Implement Linkage::Preemptible for simplejit 2020-10-11 16:23:43 +02:00
bjorn3
589f4a4405 Re-introduce finalize_definitions and get_finalized_* for simplejit 2020-10-11 16:18:27 +02:00
bjorn3
2346fe7de6 Make some things private 2020-10-11 16:16:39 +02:00
bjorn3
b061694491 Rustfmt and update docs 2020-10-01 09:53:23 +02:00
bjorn3
9ccf837092 Fix SimpleJIT tests 2020-09-30 19:58:12 +02:00
bjorn3
d84ca235d2 Remove Backend trait and turn Module into a trait 2020-09-30 19:52:57 +02:00
bjorn3
84c6ec3214 Move alignment config from declare_data to define_data 2020-09-30 19:23:23 +02:00
bjorn3
b44c5bb2be Move ModuleDeclarations to backends 2020-09-30 18:33:29 +02:00
bjorn3
7a6e909efe Move a bit more logic out of Module 2020-09-30 17:31:08 +02:00
bjorn3
c2ffcdc6d0 Move logic out of more Module methods 2020-09-30 17:12:33 +02:00
bjorn3
80f4ecf9b5 Move almost all logic out of Module 2020-09-30 16:50:24 +02:00
bjorn3
588a4be0b3 Store Compiled* in the backend instead of Module 2020-09-30 16:18:57 +02:00
bjorn3
405b9e2875 Remove finalize_* from the Backend trait
Instead let the `finish` method perform finalization
2020-09-30 14:20:39 +02:00
bjorn3
59f95083b1 Remove write_data_funcaddr and write_data_dataaddr
They are unimplemented by all backends
2020-09-30 13:59:26 +02:00
bjorn3
7608749647 Merge finalize_definitions into finish 2020-09-30 13:58:13 +02:00
bjorn3
4483c3740a Remove get_finalized_* 2020-09-30 13:53:01 +02:00
bjorn3
b1187b5507 Merge ModuleNamespace and ModuleContents 2020-09-30 12:29:22 +02:00
Alex Crichton
5e08eb3b83 Bump wasmtime to 0.20.0 (#2222)
At the same time bump cranelift crates to 0.67.0
2020-09-23 13:54:02 -05:00
Joshua Nelson
d28abad441 Upgrade to target-lexicon 0.11
This allows downstream library users to use `CDataModel` without having
to install two different versions of target-lexicon.
2020-09-15 11:40:09 -07:00
Nick Fitzgerald
05bf9ea3f3 Rename "Stackmap" to "StackMap"
And "stackmap" to "stack_map".

This commit is purely mechanical.
2020-08-07 10:08:44 -07:00
Alex Crichton
63d5b91930 Wasmtime 0.19.0 and Cranelift 0.66.0 (#2027)
This commit updates Wasmtime's version to 0.19.0, Cranelift's version to
0.66.0, and updates the release notes as well.
2020-07-16 12:46:21 -05:00
Graham Scheaffer
ef8fe18262 Updated region versions (#1978) 2020-07-06 09:26:28 -05:00
Alex Crichton
a92a31d850 Rename the master branch to main (#1924)
* This PR is against a branch called `main`
* Internally all docs/CI/etc is updated
* The default branch of the repo is now `main`
* All active PRs have been updated to retarget `main`

Closes #1914
2020-06-25 14:03:21 -05:00
Pat Hickey
4f72a7483b Merge pull request #1836 from carlokok/feature/object_file_section
Cranelift: Module data apis should allow specifying the object file section
2020-06-17 10:49:09 -07:00
Carlo Kok
0b613caad1 Address concerns in pullrequests. 2020-06-15 20:46:04 +02:00
Dan Gohman
caa87048ab Wasmtime 0.18.0 and Cranelift 0.65.0. 2020-06-11 17:49:56 -07:00