Dan Gohman
0d54517d35
Bump version to 0.39.0
2019-08-20 14:26:16 -07:00
Dan Gohman
0c2c597852
Update to latest versions of term, capstone, wabt, goblin, wasmparser.
2019-08-20 14:18:14 -07:00
Andrew Brown
b4ef90cfcd
Remove SSE2 setting for x86
...
In talking to @sunfishcode, he preferred to avoid the confusion of more ISA predicates by eliminating SSE2. SSE2 was released with the Pentium 4 in 2000 so it is unlikely that current CPUs would have SIMD enabled and not have this feature. I tried to note the SSE2-specific instructions with comments in the code.
2019-08-20 10:21:12 -07:00
Andrew Brown
6605f308b3
Fix static analysis warnings
2019-08-20 10:21:12 -07:00
Andrew Brown
d492cf7e0e
Avoid unnecessary lane calculations in codegen code
...
This refactor moves the calculation of the number of lanes to code closer to where the Instruction/BoundInstruction is bound.
2019-08-20 10:21:12 -07:00
Andrew Brown
3fdc78174f
Add x86 implementation of extractlane instruction
2019-08-20 10:21:12 -07:00
Benjamin Bouvier
036b9aea94
[codegen] Rename and explicit usage of replace_with_alias;
...
It can actually only replace one result; don't try to make it generic
yet, since there's no point in doing so right now, and make it do the
dumb thing so it's not surprising to use.
2019-08-20 19:06:09 +02:00
Joshua Nelson
3b0695bef4
Installed deadlinks if not already installed
...
If nightly isn't installed, it also gives a warning that some links will
be broken
2019-08-19 11:48:37 +02:00
Joshua Nelson
bf77985e25
Fix broken links using rustdoc nightly
...
Uses cross-crate documentation links so that rustdoc does the hard work
of making relative links for us.
Requires nightly version of rustdoc in order to generate links based on
path names, see
https://github.com/rust-lang/rfcs/blob/master/text/1946-intra-rustdoc-links.md
for details.
2019-08-19 11:48:37 +02:00
Carmen Kwan
19257f80c1
Add reference types R32 and R64
...
-Add resumable_trap, safepoint, isnull, and null instructions
-Add Stackmap struct and StackmapSink trait
Co-authored-by: Mir Ahmed <mirahmed753@gmail.com >
Co-authored-by: Dan Gohman <sunfish@mozilla.com >
2019-08-16 11:35:16 -07:00
Benjamin Bouvier
b659262d2a
Use aliasing instead of copying in simple_preopt;
2019-08-16 10:41:51 -07:00
Benjamin Bouvier
2ee35b7ea1
Implement a Windows Baldrdash calling convention;
2019-08-16 14:25:15 +02:00
Benjamin Bouvier
d8d3602257
Adds the libcall_call_conv setting and use it for libcall calls expansion;
2019-08-12 16:12:00 -07:00
Sean Stangl
c7b4b98cac
Add a fold_redundant_jumps() pass to the branch relaxation phase. ( #887 )
2019-08-09 15:30:11 -06:00
bjorn3
e6e274a3aa
Add bugpoint command
...
Add the command `cargo run --release bugpoint crash.clif 2>/dev/null` to reduce test cases.
2019-08-08 11:40:41 +02:00
Adam C. Foltzer
73670aab43
Return a WasmResult from ModuleEnvironment methods ( #886 )
...
* [wasm] return a WasmResult from `declare_table_elements`
This method in particular needs to accommodate failure because any table index other than zero is
currently invalid.
* [wasm] additional failure handling improvements
- Adds `WasmResult<()>` as the return type for most of the `ModuleEnvironment` methods that
previously returned nothing.
- Replaces some panics with `WasmError::Unsupported` now that the methods can return a result.
- Adds a `wasm_unsupported!()` macro for early returns with a formatted unsupported message.
2019-08-07 13:23:32 -07:00
Yury Delendik
00b8d019c9
Bump version to 0.38.0 ( #894 )
2019-08-06 14:41:13 -05:00
Yury Delendik
29b32b3062
Serialize ValueLabel and StackSlots ( #888 )
2019-08-05 08:31:00 -05:00
David Lattimore
383ce584ae
Fix an assertion that wasn't doing what it said
2019-08-05 15:22:10 +02:00
Nicolas B. Pierron
bc1b56f739
Rename data to inst_data in binemit generated code.
2019-08-02 19:34:18 +02:00
Nicolas B. Pierron
c903735ea8
Shrink: Factor accesses of instruction data
2019-08-02 19:34:18 +02:00
Nicolas B. Pierron
3585ee34b0
Uses divert.apply for all instruction within binemit.
2019-08-02 19:34:18 +02:00
Nicolas B. Pierron
ad71715304
Factor out func.dfg[inst] accesses in binemit.
2019-08-02 19:34:18 +02:00
Benjamin Bouvier
627ba24b59
Simplify jump table instructions and add missing conversion;
...
This makes non-legalized jump table instructions operate on operands with
pointer-sized types. This means we need to extend smaller types into the
pointer-sized operand, when the two don't match.
2019-08-02 18:39:39 +02:00
Nicolas B. Pierron
f0d7438728
Properly legalize with empty jump tables.
2019-08-01 13:47:28 +02:00
iximeow
6e57e3f8f3
preopt: use replaced arg after having replaced BinaryImm
...
when replacing BinaryImm, we use the prior arg, but later use the arg
that was replaced when writing an alias if we can determine the new op
is actually equivalent to a simple copy
2019-08-01 11:00:37 +02:00
Benjamin Bouvier
057d4f6e3c
Simple preopt: Fold (imm OP x) into (OP_IMM x imm) whenever possible;
2019-07-31 17:42:05 +02:00
Benjamin Bouvier
23ac723d4c
Simple preopt: fold instructions using simple algebraic identities;
2019-07-31 17:42:05 +02:00
Benjamin Bouvier
2fef2eef67
Simple preopt: try to fold right-shift of left-shift into an extended move;
2019-07-31 17:42:05 +02:00
Benjamin Bouvier
141b45e0e1
Simple preopt: fold binary opcodes chains together;
2019-07-31 17:42:05 +02:00
Benjamin Bouvier
dc58a5fc5c
Simple preopt: use the immediate form for adjust_sp_down/ifcmp whenever possible;
2019-07-31 17:42:05 +02:00
bjorn3
8e33ca3055
Fix tests
2019-07-31 15:20:08 +02:00
bjorn3
6042ee6f2d
Improve graphviz rendering
2019-07-31 15:20:08 +02:00
iximeow
3d42753535
add VisibleTranslationState for a public-friendly interface
2019-07-31 12:15:51 +02:00
Luca Barbato
d5342bfdfa
Fix the label filter
2019-07-31 12:13:58 +02:00
Andy Wortman
b5cb8556f6
[wasm] Pass translation state along for before/after_translate_operator callbacks ( #879 )
2019-07-30 16:32:50 +02:00
laizy
5ca13a70a5
check no other sections after data section
2019-07-29 18:41:33 +02:00
Andrew Brown
4074ce2f5d
Add a unit test for ir::Type::lane_type() for a vector type
...
Closes #834
2019-07-29 11:13:39 +02:00
Dan Gohman
16e16c49a7
Bump version to 0.37.0
2019-07-27 04:50:19 -07:00
Artur Jamro
09ec0d4149
Derive Hash for some types
2019-07-27 06:23:03 -05:00
Sean Stangl
be36cc6538
Generate basic blocks for wasm if..then..else.
2019-07-25 11:04:02 -06:00
Andy Wortman
b7a9d65458
cranelift-wasm hooks to instrument wasm operators ( #861 )
...
* cranelift-wasm hooks to instrument wasm operators
2019-07-25 09:36:17 -07:00
Nicolas B. Pierron
feecd23967
Assert if newly added instructions break the Basic Block invariant.
2019-07-25 14:33:25 +02:00
Nicolas B. Pierron
42ebd2a5f4
Fix licm/jump-table-entry.clif test case to work with basic blocks.
2019-07-25 14:28:07 +02:00
Nicolas B. Pierron
6792c062bf
Add basic-blocks feature flag at the top-level Cargo.toml.
2019-07-25 14:27:44 +02:00
Sean Stangl
70c91f913d
Produce more helpful basic block errors in cranelift-frontend.
...
Previously, the error just notified that there was a failure.
The new-style error says specifically in which ebb, on which instruction.
2019-07-23 07:58:57 -06:00
Sean Stangl
926e4c8bf8
Generate basic blocks for Wasm br_if.
2019-07-23 07:58:57 -06:00
Sean Stangl
ffa9d315e6
Add some comments to the frontend code.
2019-07-23 07:58:57 -06:00
Sean Stangl
5d1deecbb4
Give cranelift-wasm a "basic-blocks" feature.
2019-07-23 07:58:57 -06:00
Dan Gohman
4641fdd302
Bump version to 0.36.0
2019-07-19 16:28:40 -07:00