Commit Graph

2945 Commits

Author SHA1 Message Date
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
Benjamin Bouvier
b7dfe8aaa6 Fix build warnings for cranelift-codegen tests; 2019-03-12 09:53:36 +01:00
Steffen Butzer
92b3987e54 windows/x64 call convention: only use XMM0 for float return values (#691) 2019-03-11 11:44:44 +01:00
bjorn3
00cfe62380 Update README.md 2019-03-08 17:01:36 +01:00
bjorn3
ebf8bc33e8 Rustup stable to 1.32.0 2019-03-08 17:01:36 +01:00
bjorn3
75312a6456 Update faerie to 0.9.1 2019-03-08 17:01:36 +01:00
Dan Gohman
34aba7fe66 Bump version to 0.29.0 2019-03-05 06:36:34 -08:00
bjorn3
b4608c02c7 Fixed test 2019-03-05 06:19:46 -08:00
Dan Gohman
395de457c0 Add more tests for emit_small_memset and emit_small_memcpy. (#1) 2019-03-05 06:19:46 -08:00
bjorn3
2d2b041766 Fix emit_small_memset 2019-03-05 06:19:46 -08:00
Benjamin Bouvier
a06d257253 Add a command to push a tag to the repository
The tag is named `v$version` and will thus appear in the tags/releases tabs of the repository, where we can add text explaining new features, API changes, etc.
2019-03-05 06:14:08 -08:00
Benjamin Bouvier
ec521088b7 Fixes #695: Reintroduce a workspace declaration to run all tests with cargo; 2019-03-05 06:10:38 -08:00
Yury Delendik
27b0933a4a Preserve global wasm module offset in SourceLoc. 2019-03-05 14:51:40 +01:00
Steffen Butzer
2a519092a0 Use single index for param register allocation for windows callconv (… (#693)
* Use single index for param register allocation for windows callconv (#691)

The used registers depend entirely on the parameter index (1st, 2nd, 3rd, 4th, ... param)
and we cannot shift unused registers to other indexes, if they are not designated for
the use for that parameter index.
2019-03-05 12:17:41 +01:00
Dan Gohman
2f2626f4b3 Remove the empty [workspace] declaration.
It doesn't appear to be needed; the crate directories having Cargo.toml
files appears to be sufficient.
2019-03-01 15:19:43 -08:00
Pat Hickey
d2894f9f45 cranelift-faerie: convert to use new extensible decl format
Bump faerie to 0.8.0 and goblin to 0.0.21.

* Preemptible linkages are now weak symbols
* Faerie will put read-only data in .rodata for elf
2019-02-26 08:52:18 -08:00
bjorn3
6267e1ded9 Implement sshr_imm.i8 (#687) 2019-02-25 19:04:32 +01:00
bjorn3
166c11af11 Fix global value colocated printing
It used to print `gv0 = colocated symbol u1:1` while cranelift-reader
expects `gv0 = symbol colocated u1:1`.
2019-02-25 18:01:05 +01:00
kryptan
83edf959f2 Fix link to issues in rustc.md 2019-02-25 10:20:30 +01:00
robojumper
851f125eda Fix bitrev intrinsic 2019-02-22 16:55:15 -08:00
Benjamin Bouvier
603d80615f [meta] Introduce the fmtln! macro to ease writing formatted strings; 2019-02-20 11:31:38 +01:00