Tyler McMullen
79cea5e18b
Implement jump tables ( #453 )
...
* Add 'jump_table_entry' and 'indirect_jump' instructions.
* Update CodeSink to keep track of code size. Pretty up clif-util's disassembly output.
* Only disassemble the machine portion of output. Pretty print the read-only data after it.
* Update switch frontend code to use new br_table instruction w/ default.
2018-10-03 10:04:21 -07:00
Benjamin Bouvier
de1d82b4ba
Make SettingsError easier to diagnose;
2018-10-03 06:36:03 -07:00
Dan Gohman
ab99720959
Bump version to 0.22.0
2018-09-21 21:39:41 -07:00
Dan Gohman
53a0c6c67f
Update to the rustfmt in rust 1.29, which is now stable.
2018-09-13 12:59:25 -07:00
Dan Gohman
b4c7451ae5
Bump version to 0.21.1
2018-09-10 10:00:45 -07:00
Dan Gohman
e8878ba504
Bump version to 0.21.0
2018-09-04 22:04:22 -07:00
Dan Gohman
d4b8622393
Rename the VOID type to INVALID and clean up obsolete comments.
...
The VOID type isn't used for anything resembling what "void" means in C,
so rename it to INVALID to avoid confusion.
2018-09-04 21:46:22 -07:00
Dan Gohman
ca9da7702e
Reorganize the global value kinds. ( #490 )
...
* Reorganize the global value kinds.
This:
- renames "deref" global values to "load" and gives it a offset that works
like the "load" instructions' does
- adds an explicit "iadd_imm" global value kind, which replaces the
builtin iadd in "vmctx" and "deref" global values.
- also renames "globalsym" to "symbol"
2018-09-04 21:09:04 -07:00
Caroline Cullen
59b83912ba
Adds pass command to clif-util. ( #487 )
...
* Adds pass command to clif-util.
2018-09-04 16:31:24 -07:00
Kaz Wesley
7e571f4a49
Print value aliases at referrent definition ( #492 )
...
* Print value aliases at referrent definition
Closes #488 .
2018-09-04 15:02:46 -07:00
Dan Gohman
7fa0a38793
Bump version to 0.20.0
2018-08-28 16:37:52 -07:00
Dan Gohman
bdd1949b34
Don't pass Copy objects by reference.
2018-08-28 15:33:18 -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
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
3d89a8645b
Fix rustfmt errors.
2018-08-16 15:26:53 -07:00
Dan Gohman
6a07c72867
Bump version to 0.19.0
2018-08-14 12:55:34 -07:00
Dan Gohman
cc4bf1c7fb
Deny unstable_features in "std" builds.
2018-08-13 12:51:49 -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
Dan Gohman
cd02010a78
Bump version to 0.18.1
2018-08-02 20:10:23 -07:00
Dan Gohman
c4a056a7a0
Bump version to 0.18.0
2018-08-02 18:34:22 -07:00
Dan Gohman
1b30265c5c
Define a "table" concept.
...
"Table" is to WebAssembly tables as "Heap" is to WebAssembly linear
memories.
2018-08-02 15:21:34 -07:00
Dan Gohman
cd75176f10
Update to the rustfmt in rust 1.28, which is now stable.
...
Also, rustfmt's --write-mode=check is now named --check.
2018-08-02 09:55:40 -07:00
Dan Gohman
c49c20713c
Check for duplicate jump tables before performing any IR mutations.
...
This isn't fixing an actual bug, but it does make `add_jt` more
consistent with the other `add_*` functions.
2018-08-01 13:33:54 -07:00
Dan Gohman
1b42105faa
Remove reserved_reg functionality. ( #424 )
...
* Remove reserved_reg functionality.
This wasn't implemented, and if we need it in the future, it seems like
it would be better to extend the concept of global values to cover this.
* Use GlobalValue::reserved_value() for sentinal values.
2018-07-31 07:57:37 -07:00
Aaron Power
13fea26c95
Correctly handle duplicate definitions
2018-07-28 11:48:13 -07:00
Dan Gohman
d6d1e7253d
Bump version to 0.17.0
2018-07-23 16:57:51 -07:00
Dan Gohman
6cb03a873d
Bump version to 0.17.0-alpha
2018-07-23 16:15:53 -07:00
Dan Gohman
c068721964
Bump version to 0.16.1
2018-07-18 13:33:15 -07:00
Dan Gohman
ce27b2a74f
Bump version to 0.16.0
2018-07-17 15:49:04 -07:00
Dan Gohman
17db4e6be8
Add a LICENSE file to each crate.
...
The individual crates are published separately from the main repository
on crates.io. To ensure that a copy of the LICENSE file accompanies all
published copies of the code, give each crate its own LICENSE file.
2018-07-17 12:48:27 -07:00
Dan Gohman
a28a3c3ea9
Bump version to 0.15.0
2018-07-14 07:27:35 -07:00
Dan Gohman
8930cb1b5d
Update dependency versions.
2018-07-13 16:34:34 -07:00
Dan Gohman
262689908e
Bump version to 0.14.0
2018-07-13 09:26:46 -07:00
Dan Gohman
401c872c52
Update more paths for the CraneStation/cranelift rename.
2018-07-13 09:22:15 -07:00
Dan Gohman
f4dbd38a4c
Rename Cretonne to Cranelift!
2018-07-13 09:15:16 -07:00
Dan Gohman
19a636af96
Change Cretonne's license to "Apache-2.0 WITH LLVM-exception".
...
This adds the "LLVM-exception" to Cretonne's existing Apache-2.0
license.
https://spdx.org/licenses/LLVM-exception.html
2018-07-13 07:25:32 -07:00
Benjamin Bouvier
25508ac66e
[clippy] Pass more types by value;
...
wasmparser::Type is an enum, and there was one Location I missed.
2018-07-11 13:47:25 -07:00
Benjamin Bouvier
26523fdf5c
[clippy] Pass a few argument types by value, not by reference;
...
Since Location is basically just a usize, and wasmparser::Type is an
enum, and both are copiable, this passes them down by value instead of
by reference, as suggested by Clippy.
2018-07-10 06:11:30 -07:00
Dan Gohman
112ae6df56
Bump version to 0.13.0
2018-07-02 15:48:18 -07:00
Dan Gohman
8f3c49bc6c
Update more references to "global variables".
...
This continues the transition to "global values", which aren't
implicitly dereferenced.
2018-06-28 12:52:51 -07:00
Dan Gohman
cc94adca3b
Update to the rustfmt in rust 1.27, which is now stable. ( #377 )
2018-06-26 13:06:16 -07:00
Dan Gohman
603bb4ac02
Remove an obsolete comment.
2018-06-21 15:45:24 -07:00
Dan Gohman
0349270b58
Bump version to 0.12.0
2018-06-16 07:50:27 -07:00
Lachlan Sneff
3686fc2fc7
Fix typos caused by find-and-replace
2018-06-15 18:33:30 -07:00
Lachlan Sneff
5c320a0d30
Change GlobalVar to GlobalValue
2018-06-15 18:33:30 -07:00
Dan Gohman
dfc7065252
Bump version to 0.11.0
2018-06-15 08:46:25 -07:00
Dan Gohman
9542cab5ed
Bump version to 0.10.0
2018-06-12 12:29:59 -07:00
Dan Gohman
a7813c4448
Update to target-lexicon 0.0.2.
...
This fixes compilation on rust 1.22.1.
2018-06-12 06:36:07 -07:00
Dan Gohman
1b55a2d005
Rename more Error and Result types.
2018-06-12 05:02:25 -07:00