Benjamin Bouvier
dca168f350
[meta] Switch to the Rust crate to generate legalizations and remove Python code;
2019-05-02 10:08:53 +02:00
bjorn3
abf0048972
Merge data alignment
2019-04-30 14:06:34 +02:00
bjorn3
8216b83c65
Make alignment magic number constants
2019-04-30 14:06:34 +02:00
bjorn3
556d5d45e9
Rustfmt
2019-04-30 14:06:34 +02:00
bjorn3
cb6268118c
Make it possible to define data alignment
2019-04-30 14:06:34 +02:00
Benjamin Bouvier
443e48aee1
[wasm] Raise an error instead of panicking for unhandled function local types;
2019-04-30 13:58:18 +02:00
Benjamin Bouvier
3ce5d2057d
[wasm] Add the ability to provide a user-defined error;
2019-04-30 13:58:18 +02:00
Benjamin Bouvier
02e114cf3d
[wasm] Make FuncEnvironment functions fallible ( fixes #752 );
2019-04-30 13:58:18 +02:00
Benjamin Bouvier
efdb7d86b3
Fixes #607 : Use a wrapping multiply when computing div/rem magic numbers; ( #757 )
2019-04-30 11:46:54 +02:00
antoyo
79d6978e29
cranelift-simplejit: add a translation mechanism for LibCalls ( #747 )
2019-04-29 16:58:39 +02:00
Antoni Boucher
d8d573208b
Remove unwrap() for branch folding
2019-04-28 16:32:01 -07:00
Antoni Boucher
4ee2747c5b
Fix cranelift_preopt panic
...
Fix #611
2019-04-28 16:32:01 -07:00
Pat Hickey
75ec950a12
Merge pull request #743 from CraneStation/expose-function-definitions
...
Expose function definitions, populate FaerieCompiledFunction
2019-04-25 14:58:36 -07:00
Benjamin Bouvier
95e6fc9efc
Avoid inserting checks during div/rem legalization when the input is a constant immediate;
2019-04-25 16:58:41 +02:00
Benjamin Bouvier
e3e66acfb1
[meta] Generate legalizations in the Rust crate;
2019-04-25 11:44:56 +02:00
Benjamin Bouvier
1f21349c4b
[meta] Add CPU modes to the meta crate;
2019-04-25 11:44:56 +02:00
Benjamin Bouvier
d00e42ede3
[meta] Port shared and x86 legalizations to the Rust crate;
2019-04-25 11:44:56 +02:00
Benjamin Bouvier
494f3abf1d
[meta] Add type inference, transforms and AST helpers for legalization;
2019-04-25 11:44:56 +02:00
Benjamin Bouvier
dfb27c3402
[meta] Make TypeVar shareable and mutable;
...
... since its type set can change over time during type inference. Use a
Rc<RefCell> to achieve this.
2019-04-25 11:44:56 +02:00
Benjamin Bouvier
b85146e945
[meta] Add helper methods and tests to TypeSet;
2019-04-25 11:44:56 +02:00
Benjamin Bouvier
e71ae7b02f
[meta] Add instruction predicates;
2019-04-25 11:44:56 +02:00
Benjamin Bouvier
d92778a19e
[meta] Add Instruction helpers and change its representation to make it easily copiable;
...
- adds helpers used by other parts of the code
- allows cheap copies by having Instruction be a lightweight ref-cloned
wrapper of the actual instruction's content.
2019-04-25 11:44:56 +02:00
iximeow
45013a1d2b
Expose function definitions and populate FaerieCompiledFunction with function lengths
2019-04-24 14:54:29 -07:00
Benjamin Bouvier
6acf9be540
Refactor simple-preopt to make it slightly simpler to read;
...
- don't use camel case but snake casing;
- longer variable names;
- more whitespace;
- add/wrap comments;
2019-04-24 14:14:44 +02:00
Benjamin Bouvier
00429ebe99
[meta] Fix outdented_line in srcgen;
2019-04-24 10:47:26 +02:00
Benjamin Bouvier
d2d2cdcd78
[meta] Rejigger comments in cdsl/formats;
2019-04-24 10:47:26 +02:00
Benjamin Bouvier
faa9b25691
[meta-python] Simplify Var ctor since it never is given a typevar argument;
2019-04-24 10:47:26 +02:00
Benjamin Bouvier
b3a950b589
[meta] Fix condition codes in immediates;
2019-04-24 10:47:26 +02:00
Benjamin Bouvier
274415d5ee
Fixes #738 : Check ebbs used in jump tables in the verifier;
2019-04-17 15:37:27 +02:00
Tyler McMullen
3b1583ebb7
Style changes in response to code review.
2019-04-17 13:15:41 +02:00
Tyler McMullen
4d427d7c71
Remove old commented out code
2019-04-17 13:15:41 +02:00
Tyler McMullen
1090dc5069
Switch from fallthrough back to jump.
2019-04-17 13:15:41 +02:00
Tyler McMullen
5596b5fadc
Address code review comments, simplifying some bits of branch_opt.
2019-04-17 13:15:41 +02:00
Tyler McMullen
402d0d9c83
Add comments to branch folding and reordering functions in simple_preopt.
2019-04-17 13:15:41 +02:00
Tyler McMullen
fd6940baaf
Switch branch order opt from brif/brff to br_icmp, as that's what frontends should produce.
2019-04-17 13:15:41 +02:00
Tyler McMullen
571b87414f
Switch ifcmp+brif folding to be icmp+brz folding, which is what frontends actually produce.
2019-04-17 13:15:41 +02:00
Tyler McMullen
67cc5aafec
Refactoring of branch ordering and zero-check optimization based on PR feedback.
2019-04-17 13:15:41 +02:00
Tyler McMullen
861ef3a2e5
Questionable change: Remove domtree generation from simple_preopt testing.
2019-04-17 13:15:41 +02:00
Tyler McMullen
89a2dd9414
Add tests for branch order and branch comparison folding.
2019-04-17 13:15:41 +02:00
Tyler McMullen
947130be81
Add branch order optimization to simple_preopt to encourage fallthroughs.
2019-04-17 13:15:41 +02:00
Tyler McMullen
57f087c9da
Add note to simple_preopt differentiating its use from the preopt crate.
2019-04-17 13:15:41 +02:00
Tyler McMullen
fc6876c68e
Fold 'ifcmp_imm' + 'brif' where imm is zero and cond is 'eq' or 'ne', into 'brz' or 'brnz'.
2019-04-17 13:15:41 +02:00
Benjamin Bouvier
9b156fd9bb
[meta] Use the Rust crate for opcodes/inst_builder code generation;
2019-04-09 15:42:28 +02:00
Benjamin Bouvier
b5595aadd2
[meta] Generate opcodes.rs/inst_builder.rs with the Rust crate;
2019-04-09 15:42:28 +02:00
Lars T Hansen
aa926e9097
Allow readonly nontrapping loads to be hoisted by licm ( #727 )
2019-04-09 11:40:23 +02:00
Benjamin Bouvier
9062810c34
Fix the publish script to include the remote when pushing the tag;
2019-04-09 11:12:52 +02:00
carolinecullen
0166d6507a
Adding comment about copying RiscV abi file into ARM32.
2019-04-08 17:06:08 -07:00
carolinecullen
8ab7170a07
Updated comments.
2019-04-08 17:06:08 -07:00
carolinecullen
72bc035d70
Beginnings of arm32 backend.
2019-04-08 17:06:08 -07:00
Philip Craig
b74b49f7c6
Fix x86-64 encoding of uextend.i64.i8
...
The non-REX encoding of movzbl requires one of the ABCD registers as input.
2019-04-08 05:50:59 -07:00