Benjamin Bouvier
cd4c28ad97
[meta] Legalization: Unprefix some module paths to make code neater;
2019-07-09 10:56:50 +02:00
Benjamin Bouvier
15d8b95e72
[meta] Legalization: remove spurious Option wrapping for type variables;
2019-07-09 10:56:50 +02:00
Benjamin Bouvier
f1222dce10
[meta] Legalization: emit typeof type variables for results in all the cases;
2019-07-09 10:56:50 +02:00
Benjamin Bouvier
3545363006
Add ir::Types::lane_of as an alias of lane_type to be used in typevar constraints;
2019-07-09 10:56:50 +02:00
Benjamin Bouvier
4fef03f5f8
[meta] Legalization: remove spurious assert;
...
This assert was added when porting legalization from Python to Rust and
doesn't hold when we have derived type variables.
2019-07-09 10:56:50 +02:00
superriva
5672cd651c
Fix mem::uninitialized depricated since 1.38
...
Fix for `https://github.com/CraneStation/cranelift/issues/826 `.
This fix will require 1.36 minimal version for all Cranelift. Right?
Update cranelift-simplejit/src/memory.rs
Co-Authored-By: bjorn3 <bjorn3@users.noreply.github.com >
Update memory.rs
2019-07-08 15:21:56 +02:00
Nicolas B. Pierron
f431465802
Replace newly inserted fallthrough by jump.
2019-07-08 15:17:49 +02:00
Nicolas B. Pierron
8bfdfbe68b
Use BB-like EBB in filetests/regalloc/*.clif
2019-07-08 15:17:49 +02:00
Nicolas B. Pierron
a1a4b9bfb1
Use BB-like EBB in filetests/verifier/*.clif
2019-07-08 15:17:49 +02:00
Nicolas B. Pierron
8c65ec0dde
Use BB-like EBB in filetests/regress/*.clif
2019-07-08 15:17:49 +02:00
Nicolas B. Pierron
3c6ca9049e
Use BB-like EBB in filetests/simple_gvn/*.clif
2019-07-08 15:17:49 +02:00
Nicolas B. Pierron
560619f749
Use BB-like EBB in filetests/cfg/*.clif
2019-07-08 15:17:49 +02:00
Nicolas B. Pierron
3970fa2752
Use BB-like EBB in filetests/postopt/*.clif
2019-07-08 15:17:49 +02:00
Nicolas B. Pierron
4316917cb9
Use BB-like EBB in filetests/parser/*.clif
2019-07-08 15:17:49 +02:00
Nicolas B. Pierron
7b36cb58a0
Use BB-like EBB in filetests/isa/x86/*.clif
2019-07-08 15:17:49 +02:00
Nicolas B. Pierron
77eb34e20f
Use BB-like EBB in filetests/isa/riscv/*.clif
2019-07-08 15:17:49 +02:00
Nicolas B. Pierron
40eede927b
Use BB-like EBB in filetests/domtree/*.clif
2019-07-08 15:17:49 +02:00
Nicolas B. Pierron
44abcbec1e
Use BB-like EBB in filetests/licm/*.clif
2019-07-08 15:17:49 +02:00
Nicolas B. Pierron
bc75eee0cd
Use BB-like EBB in docs/*.clif
2019-07-08 15:17:49 +02:00
Benjamin Bouvier
563525b090
[meta] Remove mentions to Python in comments of the non-meta crate;
2019-07-05 17:50:17 +02:00
Benjamin Bouvier
f29a26de14
[meta] Remove the Python DSL
...
KILL THE SNAKE WITH FIRE.
2019-07-05 17:50:17 +02:00
Benjamin Bouvier
88307f693a
[meta] Generate the encodings files;
2019-07-05 17:50:17 +02:00
Benjamin Bouvier
f574ab8703
[meta] Generate the binemits files;
...
Co-authored-by: Benjamin Bouvier <public@benj.me >
Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com >
2019-07-05 17:50:17 +02:00
Benjamin Bouvier
fd03677292
[meta] Recipes and encodings descriptions for x86;
2019-07-05 11:38:51 +02:00
Benjamin Bouvier
ca277422bb
[meta] Recipes and encodings descriptions for RiscV;
2019-07-05 11:38:51 +02:00
Benjamin Bouvier
21aaf0c89f
[meta] Add cdsl facilities for encodings and recipes;
...
Co-authored-by: Benjamin Bouvier <public@benj.me >
Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com >
2019-07-05 11:38:51 +02:00
Benjamin Bouvier
4a6b88193e
[meta] Map global TransformGroup to local TransformGroup indices;
2019-07-04 16:38:28 +02:00
Benjamin Bouvier
1e42aac41a
[meta] Add new instruction predicates and the InstructionPredicateMap;
...
The latter helps deduplicating predicates during encodings and recipes
construction.
2019-07-04 16:38:28 +02:00
Dan Gohman
a3e459269e
Bump version to 0.33.0
2019-07-03 10:40:58 -07:00
Benjamin Bouvier
e34a4759cd
[meta] Fix typo in x86 setting name use_lzcnt;
2019-07-03 18:39:28 +02:00
Benjamin Bouvier
ec5678ab7a
[meta] Add the ability to bind any type to an instruction;
2019-07-03 18:39:28 +02:00
Benjamin Bouvier
9dcc185264
[meta] Add a MapWithDefault trait;
...
This traits augments HashMap so they have a `get_or_default` method that
can be used to avoid boilerplate around usage of `entry.or_default`.
2019-07-03 18:39:28 +02:00
Benjamin Bouvier
18fb87cd9c
[meta] Refactor instruction predicates to distinguish format and type checks;
...
Also add the instruction format name in format predicates, since they're
going to be used when generating encodings.
2019-07-03 18:39:28 +02:00
Benjamin Bouvier
f1d1d1e960
[meta] Uniquely number every instruction in the Rust crate;
2019-07-03 18:39:28 +02:00
Dan Gohman
102dbbb343
Bump the required rust version to 1.35.
...
Rust 1.34 gets errors like this:
```
$ cargo +1.34.0 build --release
Compiling cranelift-wasm v0.32.0 (cranelift/cranelift-wasm)
error[E0259]: the name `std` is defined multiple times
|
= note: `std` must be defined only once in the type namespace of this module
error: aborting due to previous error
For more information about this error, try `rustc --explain E0259`.
error: Could not compile `cranelift-wasm`.
To learn more, run the command again with --verbose.
```
Updating to Rust 1.35 fixes this.
2019-07-03 14:49:15 +02:00
Benjamin Bouvier
f6ac165ff6
[wasm] Don't panic when seeing unexpected types but properly fail instead;
2019-07-03 14:46:23 +02:00
Nicolas B. Pierron
460fdaa34d
Add verification pass to migrate from EBB to BB.
2019-07-03 13:57:14 +02:00
Dan Gohman
b35227b417
Bump version to 0.32.0
2019-07-02 12:27:39 -07:00
Dan Gohman
f163050c9a
Update to wasmparser 0.32.1.
2019-07-02 11:59:06 -07:00
Dan Gohman
4b924d34b6
Bump version to 0.31.0
2019-06-28 11:37:39 -07:00
Dan Gohman
ccd77c1d0b
Update to wasmparser 0.31.0 and goblin 0.0.22.
2019-06-28 15:23:54 +02:00
Dan Gohman
83715d638b
Update the Rust version badge to match what's tested in CI.
2019-06-28 10:24:41 +02:00
data-pup
a08444c4c6
fix sections translator doc comment
2019-06-27 17:04:12 -07:00
Benjamin Bouvier
83336290c2
Mark the jump_table_entry Instruction as loading;
2019-06-27 17:38:20 +02:00
Benjamin Bouvier
079ccf1f6e
Remove unused results warnings;
2019-06-24 11:42:26 +02:00
Benjamin Bouvier
d7d48d5cc6
Add the dyn keyword before trait objects;
2019-06-24 11:42:26 +02:00
Lars T Hansen
36870c41c8
Fix a calculation error for rodata_size in memsink
2019-06-18 07:14:32 -07:00
Lars T Hansen
ec5dc3384e
Handle Reloc::X86PCRelRodata4 in sundry reloc_jt
2019-06-07 14:37:58 +02:00
julian-seward1
5fb347b7bc
Merge pull request #784 from julian-seward1/issue779
...
Only create copy_nop instructions for types for which an encoding exi…
2019-06-05 15:05:56 +02:00
Julian Seward
b1488decc4
Only create copy_nop instructions for types for which an encoding exists. Issue #779 .
...
PR #773 detects, at reload time, `copy` instructions that copy a value from stack
slot back to the same stack slot. It replaces them with `copy_nop` instructions
that have a null encoding (hence producing no code).
For x86_64, `copy_nop` encodings for the types I64, I32, F64 and F32 are
provided. Unfortunately the code that detects the redundant copy doesn't
check the type of the copied value, hence leaving itself open to the danger of
creating a `copy_nop` instruction cannot be encoded (which is different from
saying it has a null encoding).
This patch:
* Expands the x86_64 set of `copy_nop` encodings to: I64 I32 I16 I8 F64 and F32
* Adds encodings for the same for x86_32, rv64 and rv32.
* In `visit_inst()` in `reload.rs`, checks the type of the copied value accordingly.
* Adds comments explaining the above.
2019-06-05 13:06:22 +02:00