Commit Graph

1625 Commits

Author SHA1 Message Date
Dan Gohman
9ada394d11 [SimpleJIT] When finalizing multiple functions, make them all executable at the end. (#474)
Add `publish()` function to cranelift-module's `Backend` trait, which
allows `finalize_all()` to defer making memory executable until it
has finished all of the patching it needs to do.
2018-08-28 15:27:52 -07:00
Dan Gohman
8e2d01a675 Add an index_type field to Table.
This parallels the `index_type` field in `Heap`.
2018-08-28 14:28:43 -07:00
Dan Gohman
eb439c9a68 Fix legalization of heap_addrs with 32-bit indices. (#480)
This makes several changes:
 - It adds an index_type to heap declarations, allowing heaps to specify the
   type for indexing. This also anticipates 64-bit heap support.

 - It adds a memory_type to deref global values, allowing deref globals to
   have types other than pointers. This is used to allow the bound variable
   in dynamic heaps to have type i32, to match the index type in heaps
   with i32 index type.

 - And, it fixes heap legalization to do the bounds check in the heap's
   index type.
2018-08-28 13:37:33 -07:00
Dan Gohman
00ddf3a7a6 Update to serde_derive 1.0.75. 2018-08-28 13:23:55 -07:00
Dan Gohman
ba8dd836ff Update to wabt 0.5.0. 2018-08-28 13:23:37 -07:00
Dan Gohman
6af407144c Remove Signature's argument_bytes field.
It's not currently used. If we do need such information, it would be
better to compute it on demand.
2018-08-28 13:19:59 -07:00
Dan Gohman
e60477092a Add a make_signature function for making callable signatures.
The `Module` can create signatures with the appropriate calling
convention.
2018-08-28 13:19:59 -07:00
Grégoire Geis
0e67255f52 Fix error not reported if at least one other error expected. (#485)
* fix error not reported if at least one other error expected.

* Fixed unused extern crate error if wasm feature is not enabled.

* No longer reporting deref cycles multiple times.

* Fix filetest type_check.clif.

* Switched comparison order for perf.

* Fixed isa/riscv/verify-encoding.clif filetest.
2018-08-28 10:33:46 -07:00
Grégoire Geis
8e74a4f8fc Pretty printing preamble errors. (#472)
* Pretty printing preamble errors.
2018-08-27 09:38:44 -07:00
Dan Gohman
2c9b7fd73a Add "no-std" category to crates supporting no-std.
And add "wasm" category to cranelift-wasm.
2018-08-22 12:51:54 -07:00
Dan Gohman
18f781e2ab Update to faerie 0.5.0. 2018-08-22 12:51:54 -07:00
Dan Gohman
77eb38c41f [Module] Remove DataDescription's writable field.
It was redundant, as data object declarations also have a writable
field, so just use that, avoiding the need for users to declare the
same thing twice.

Fixes #456.
2018-08-20 16:17:46 -07:00
ms2300
30d09cf6b0 Fixing a couple clippy warnings : #392 2018-08-20 13:35:02 -07:00
Dan Gohman
37272f5ceb Removed "Variable" parametricity for SSABuilder and related code too. 2018-08-17 12:13:34 -07:00
Dan Gohman
ad170c7412 Update to log 0.4.4. 2018-08-17 12:04:01 -07:00
Dan Gohman
ae1a17f6b3 [SimpleJIT] Fix allocation of readonly memory.
Fixes #457.
2018-08-16 18:15:22 -07:00
Dan Gohman
3d89a8645b Fix rustfmt errors. 2018-08-16 15:26:53 -07:00
Grégoire Geis
e2badb0ad6 Improvements to error reporting (#470)
* Fixed error reporting.

* Fixed compile time error when wasm feature is disabled.

* Fixed valid instructions not being printed in print_function_error.

* Fixed errors print_function_error not writing valid instructions after end.

* Made multiple checks non-fatal.

* verify_global_values is no longer fatal.

* Slightly better formatting of errors in pretty_verifier_error.
2018-08-16 11:34:52 -07:00
Caroline Cullen
5f679a7310 Change command line parsing to clap in serde util #434 (#435)
* Change command line parsing to clap in serde util #434
2018-08-14 15:18:10 -07:00
Denis Merigoux
ce7b72743c Updated doc now that Variable is now longer a type parameter 2018-08-14 15:15:09 -07:00
Denis Merigoux
bed8e33c9d Removed "Variable" parametricity for FunctionBuilder as discussed in PR https://github.com/CraneStation/cranelift/pull/437 2018-08-14 15:15:09 -07:00
Denis Merigoux
b7d2df9307 Rewrote doc with @sunfishcode's comments in mind 2018-08-14 15:15:09 -07:00
Denis Merigoux
73511435d0 Better explanation for how to use FunctionBuilder to deal with variable translation 2018-08-14 15:15:09 -07:00
Dan Gohman
6a07c72867 Bump version to 0.19.0 2018-08-14 12:55:34 -07:00
Dan Gohman
932b4ef9f3 Fix a few declarations for the no_std build. 2018-08-14 12:48:47 -07:00
bjorn3
3f0103f936 Prevent finalize being called more than once per func/data (fixes #407) 2018-08-14 10:57:59 -07:00
Grégoire Geis
dbc547091f Verifier now accepts multiple errors (fixes #387). (#452)
* Verifier now accepts multiple errors (fixes #387).
2018-08-14 10:55:10 -07:00
bjorn3
3f582f7cbd Legalize br_icmp (#449)
* Legalize br_icmp
2018-08-13 18:31:39 -07:00
Dan Gohman
bee5210b40 Merge pull request #461 from bjorn3/legalize-bint-i8
Legalize bint.i8
2018-08-13 16:02:11 -07:00
Dan Gohman
51698f93f2 Merge branch 'master' into bforest 2018-08-13 15:55:31 -07:00
Amanieu d'Antras
df7fa19807 Fix README and license 2018-08-13 23:30:09 +02:00
Dan Gohman
4769e67468 Fix a few declarations for the no_std build. 2018-08-13 12:52:43 -07:00
Dan Gohman
3b56b2f4fb Fix rustfmt errors. 2018-08-13 12:52:09 -07:00
Dan Gohman
d4a83576e4 Add a few miscellaneous comments. 2018-08-13 12:51:49 -07:00
Dan Gohman
f34531ab36 Synchronize cranelift-serde's lint settings with the other crates. 2018-08-13 12:51:49 -07:00
Dan Gohman
cc4bf1c7fb Deny unstable_features in "std" builds. 2018-08-13 12:51:49 -07:00
Dan Gohman
8bd1b877ef Elaborate on some comments. 2018-08-13 12:51:49 -07:00
Benjamin Bouvier
a044f58cea Fixes #404: Use log.rs and a file-per-thread logger instead of the dbg! macro; 2018-08-13 12:51:14 -07:00
bjorn3
fa65ee7a68 Legalize bint.i8 2018-08-13 21:23:25 +02:00
Daniel Keep
60c2cad06e Add SimpleJIT internal symbol table.
Allows for host programs to directly expose symbols to jitted code without
needing to deal with platform-specific linker arguments, or dynamic
dispatch.
2018-08-13 12:19:31 -07:00
Amanieu d'Antras
0b548c720c Don't make the Comparator a type argument for bforest 2018-08-12 15:46:35 +02:00
Amanieu d'Antras
ae3a3c368b Move bforest into a separate crate 2018-08-12 15:46:35 +02:00
Caroline Cullen
ad184ff9aa Fixing serde formatting. 2018-08-09 20:12:43 -07:00
Caroline Cullen
9683adec64 Updating documentation for serde 2018-08-09 20:12:43 -07:00
Maddy
32b332b733 Format files. 2018-08-09 19:52:21 -07:00
Maddy
ee9e5cba49 Convert the start function index from a DefinedFuncIndex to a FuncIndex. 2018-08-09 19:52:21 -07:00
Maddy
f5d46cabe7 Use types to distinguish between wasm function body indices and wasm function indices. 2018-08-09 19:52:21 -07:00
Benjamin Bouvier
f7e481d9ac Implement wasm saturating conversions; 2018-08-09 19:50:41 -07:00
Sergey Pepyakin
9dbfbbde10 Stack Limit as an Argument Purpose (#372)
* Initial approach.

* Move stack_limit check before opening the frame

* Account for GPRs and frame pointer in stack check

* Check stack_limit example.

* Remove stack_limit attribute code.

Amends #359

* fmt
2018-08-04 06:16:21 -07:00
Bruce Mitchener
76a7efc8db Clippy improvements (#408)
* clippy: Allow subsec_nanos usage for now.

The recommendation from clippy requires Rust 1.27, but we currently
support Rust 1.25 and later.

* Simplify ref pattern matches.

This was recommended by clippy.
2018-08-02 22:10:51 -07:00