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
Benjamin Bouvier
84fede890c
[meta] Optimize the sequence table to use whole table suffix prefixing;
2019-04-05 11:59:09 -07:00
Benjamin Bouvier
e6249b541d
Update target-lexicon to 0.4.0;
2019-04-05 08:23:42 -07:00
Benjamin Bouvier
cd8a42e01f
Fix #686 : Allow code shrink in relaxation if the shrinking pass hasn't been run;
...
Also:
- make sure to apply diversions when determining offsets for code
relaxation.
- select the smallest encoding when selecting a relaxed branch
instruction.
2019-04-03 11:42:38 +02:00
Benjamin Bouvier
2dd1552369
[meta] Make Typevar::type_set private, and add a second getter to read it directly;
...
There might be a silent bug in the Python module which directly reads
from this type_set field; in particular, it does so when reading all
controlling type variables, which all seem to be free variables (i.e. no
parent typevar). So imitate this behavior here, until we're sure there
are no other meta generators that rely on this.
2019-04-02 17:30:50 +02:00
Benjamin Bouvier
5edee84f67
[meta] Port TypeVar's test_functions to Rust;
...
Fixes two issues:
- name of derived type variables wasn't correct. (This is used during
code generation.)
- the TypeVar::derived() function wasn't creating the correct type set
(and would instead propagate the parent's one).
2019-04-02 17:30:50 +02:00
Benjamin Bouvier
dd63ebfb68
[meta] Port typeset_singleton tests to the Rust crate;
2019-04-02 17:30:50 +02:00
Benjamin Bouvier
ac37cb9bf5
[meta] Add test for {half/double}_{vector/width} and as_bool;
2019-04-02 17:30:50 +02:00
Benjamin Bouvier
6053201128
[meta] Move the TypeSet building out of the TypeVar builder so as to test it;
2019-04-02 17:30:50 +02:00
Benjamin Bouvier
3e7543df79
[meta] Introduce the num_set! macro to create NumSet as vec! does;
2019-04-02 17:30:50 +02:00
Dan Gohman
d1bb93294e
Update Travis from trusty to xenial, and to Rust 1.33.
2019-03-31 20:29:46 -07:00
Benjamin Bouvier
27f4163b89
Fixes #716 : Stub out parse_x86_cpuid in the non-x86 case;
2019-03-28 07:09:33 -07:00
Benjamin Bouvier
86430abc4c
[meta] Port all the Cranelift instructions to the meta crate;
2019-03-28 14:13:29 +01:00
Benjamin Bouvier
3c31eac48c
[meta] Port Instruction/InstructionGroup to the Rust meta crate;
2019-03-28 14:13:29 +01:00
Lars T Hansen
208c4e6da6
Fix a disasm formatting error
2019-03-28 14:12:39 +01:00
Benjamin Bouvier
d59bef1902
[meta] Port Formats and Operands to the Rust crate;
2019-03-27 14:43:27 +01:00
Benjamin Bouvier
146e0bd2f5
[meta] Port Typevar to the Rust crate;
2019-03-27 14:43:27 +01:00
Benjamin Bouvier
f3f449b45b
[meta] Tweak generation of settings/registers;
2019-03-27 14:43:27 +01:00
Benjamin Bouvier
393b88af6e
[meta] Implement UniqueTable in the Rust crate;
...
... and also rename the previously-named UniqueTable to UniqueSeqTable,
which is the name used in the Python code.
2019-03-27 14:43:27 +01:00
Benjamin Bouvier
72b0d26ee9
[meta] Add features to srcgen;
...
- Adds a compiler warning when the fmtln! macro isn't correctly used.
- Allow to add an empty line.
- Make the output of generated matches more beautiful, by having one
struct per line on the clause.
- Add a method to add match with doesn't read any data from fields.
- Make sure that the placeholder clause of a match is put at the end.
2019-03-27 14:43:27 +01:00
Benjamin Bouvier
68bda3a42d
[meta-python] Fix typos;
2019-03-27 14:43:27 +01:00
Lars T Hansen
141ccb9e9d
Add a --disasm option to clif-util wasm and compile ( #713 )
...
- Both the `wasm` and `compile` commands get this new subcommand, and it defaults to false. This means that test runs with `wasm` can request disassembly (the main reason I am doing this) while test runs with `compile` now must request it, this changes current behavior.
- Switch to using context.compile_and_emit directly, and make the reloc and trap printers just accumulate output, not print it. This allows us to factor the printing code into the disasm module.
2019-03-27 12:57:13 +01:00
Dan Gohman
82c6867155
Work around Cargo #4866 . ( #699 )
...
* Work around Cargo build #4866 .
This fixes #697 .
* Rename "cargo4866workaround" to "core" per review feedback.
2019-03-26 11:28:39 -07:00
Dan Gohman
1784060baf
Add a sleep command between cargo publish invocations.
...
Crates.io no longer synchronously updates the crate index, so sleep for
a few seconds between cargo publish invocations to give it time to
update.
2019-03-26 11:07:20 -07:00
Dan Gohman
4dcbabf355
Update crate paths in publish-all.sh.
2019-03-26 09:48:20 -07:00
Dan Gohman
ec0b10cd34
Bump version to 0.30.0
2019-03-26 09:36:22 -07:00
Dan Gohman
6b854381bb
Fix a documentation-comment warning.
2019-03-26 09:11:57 -07:00
Dan Gohman
6b85df0168
Update to wasmparser 0.29.2.
2019-03-26 09:06:41 -07:00
Dan Gohman
975b7f2e8d
Put a space between "//!" and "```".
2019-03-26 08:40:25 -07:00
bjorn3
45efbf7973
Optimize switch codegen and improve docs ( #712 )
2019-03-26 11:04:02 +01:00
Yury Delendik
5e12f4f2b8
Add missing use_srcloc in postopt and regalloc passes
2019-03-25 15:06:41 +01:00