Commit Graph

6390 Commits

Author SHA1 Message Date
Yury Delendik
6f37204f82 Upgrade gimli to 0.21 (#1819)
* Use gimli 0.21

* rm CFI w Expression

* Don't write .debug_frame twice
2020-06-04 14:34:05 -05:00
Andrew Brown
97c7fbbeb6 Update Wasm spec testsuite 2020-06-04 12:19:41 -07:00
Pat Hickey
3de418630a Merge pull request #1796 from bytecodealliance/pch/wiggle_tracing
wiggle: switch logging to use `tracing` crate
2020-06-04 09:44:23 -07:00
Alex Crichton
5a8afd4540 Pin nightlies to fix lightbeam compilation (#1818)
Looks like lightbeam's nightly dependencies don't compile on the most
recent nightly. For now let's pin nightlies to get CI green.
2020-06-04 11:32:49 -05:00
Leonardo Yvens
cd4a441d88 impl WasmTy for u32 and u64 (#1808)
* impl WasmTy for u32 and u64

* docs: Update Rust to wasm type table
2020-06-04 09:00:49 -05:00
Pat Hickey
54694b8d0e Merge pull request #1810 from Kong/fix/test-programs-tagged-unions
fix(tagged-union): changed test programs to use new tagged union
2020-06-03 17:28:48 -07:00
Pat Hickey
2e952b72d0 Merge pull request #1816 from bytecodealliance/pch/faerie_deprecation
Add deprecation notice to cranelift-faerie README and FaerieBuilder.
2020-06-03 17:28:04 -07:00
Andrew Brown
5db384cd76 Rename opcode: PMULLQ to VPMULLQ 2020-06-03 16:27:57 -07:00
Andrew Brown
ce78ee3b32 Enable SIMD spec test for i64x2 arithmetic 2020-06-03 16:27:57 -07:00
Andrew Brown
aa44e8b2e3 Translate Wasm's I64x2Mul to Cranelift's imul.i64x2 2020-06-03 16:27:57 -07:00
Andrew Brown
1ea09088be Add x86 legalization for imul.i64x2 for non-AVX CPUs
The `convert_i64x2_imul` custom legalization checks the ISA flags for AVX512DQ or AVX512VL support and legalizes `imul.i64x2` to an `x86_pmullq` in this case; if not, it uses a lengthy SSE2-compatible instruction sequence.
2020-06-03 16:27:57 -07:00
Andrew Brown
b3a6985cd5 Re-organize transform groups for x86 legalization 2020-06-03 16:27:57 -07:00
Andrew Brown
5a32500518 Remove non-existent x86 encoding for sshr_imm.i64x2
This instruction does not exist in the SSE2 feature set; it can be added later with an VEX/EVEX encoding.
2020-06-03 16:27:57 -07:00
Andrew Brown
df171f01b5 Add x86_pmuludq
This instruction multiplies the lower 32 bits of two 64x2 unsigned integers into an i64x2; this is necessary for lowering Wasm's i64x2.mul.
2020-06-03 16:27:57 -07:00
Andrew Brown
40f31375a5 Add TargetIsa::as_any for downcasting to specific ISA implementations
This is necessary when we would like to check specific ISA flags, e.g.
2020-06-03 16:27:57 -07:00
Andrew Brown
9ba9fd0f64 Add x86-specific instruction for i64x2 multiplication
Without this special instruction, legalizing to the AVX512 instruction AND the SSE instruction sequence is impossible. This extra instruction would be rendered unnecessary by the x64 backend.
2020-06-03 16:27:57 -07:00
Pat Hickey
fe92a8da48 Add deprecation notice to cranelift-faerie README and FaerieBuilder. 2020-06-03 16:20:46 -07:00
Emiliano Lesende
ef4ff71dc5 fix(tagged-union): updated Cargo.lock 2020-06-03 20:00:59 -03:00
Pat Hickey
0fb374947a code review comments 2020-06-03 15:35:53 -07:00
Emiliano Lesende
59ee430431 fix(tagged-union): rebase and squash
fix(tagged-union): changed test programs to use new tagged union
generated code

fix(tagged-union): changed test programs to use new tagged union generated code

fix(tagged-union): removed local dependency and changed to point to 0.9.1 version of wasi

fix(tagged-union): added newline to gitignore, changed wasi version to 0.10.0

fix(tagged-union): removed gitignore as Cargo.lock is intentional
2020-06-03 19:07:02 -03:00
Hiroki Noda
8701645493 Fix comment for running example fib-debug (#1814) 2020-06-03 16:17:48 -05:00
Chris Fallin
5078e4eba2 Merge pull request #1774 from cfallin/aarch64-multivalue
Multi-value return support on aarch64/Wasmtime.
2020-06-03 14:14:38 -07:00
Chris Fallin
fe97659813 Address review comments. 2020-06-03 13:31:34 -07:00
Chris Fallin
615362068f Multi-value return support. 2020-06-03 13:31:34 -07:00
Chris Fallin
34eb170232 Merge pull request #1811 from cfallin/fix-warning
Fix build warnings (errors on CI) due to mmap flag rename and deprecation.
2020-06-03 13:26:36 -07:00
Yury Delendik
1f86bcfb27 freeze gimli 2020-06-03 12:47:01 -07:00
Pat Hickey
6910c1e03d use tracing 0.1.15 release 2020-06-03 10:54:52 -07:00
Pat Hickey
220733b974 wiggle-generate: add an empty constructor to ErrorTransform
some library users (me, in lucet-wasi) may not care about ErrorTransform YET
2020-06-03 10:54:34 -07:00
Pat Hickey
dcb774a35e temporarily use tracing from git 2020-06-03 10:54:34 -07:00
Pat Hickey
1b95b24686 show env_logger working in wiggle tracing example 2020-06-03 10:54:17 -07:00
Pat Hickey
33a94ca7d5 just one cargo feature for tracing/log 2020-06-03 10:54:17 -07:00
Pat Hickey
820b283cf8 can't put tracing behind a feature without an extra crate :( 2020-06-03 10:54:17 -07:00
Pat Hickey
02c0c68ed2 replace all uses of log with tracing 2020-06-03 10:53:55 -07:00
Pat Hickey
f89fc0ac57 wiggle: can swap in tracing for args 2020-06-03 10:53:32 -07:00
Pat Hickey
994104d615 wiggle: add config options for logging 2020-06-03 10:53:32 -07:00
Chris Fallin
b8e31d7c8e Fix build warnings (errors on CI) due to mmap flag rename and deprecation. 2020-06-03 09:48:22 -07:00
Dan Gohman
a76639c6fb Wasmtime 0.17.0 and Cranelift 0.64.0. (#1805) 2020-06-02 18:51:59 -07:00
Yury Delendik
15c68f2cc1 Disconnects Store state fields from Compiler (#1761)
*  Moves CodeMemory, VMInterrupts and SignatureRegistry from Compiler
*  CompiledModule holds CodeMemory and GdbJitImageRegistration
*  Store keeps track of its JIT code
*  Makes "jit_int.rs" stuff Send+Sync
*  Adds the threads example.
2020-06-02 13:44:39 -05:00
Dan Gohman
b41330393d Add more notes to RELEASES.md. (#1799) 2020-06-02 10:53:07 -07:00
Nick Fitzgerald
2a75f6de21 Merge pull request #1781 from fitzgen/externref
Initial, partial support for `externref`
2020-06-02 09:47:49 -07:00
Pat Hickey
547ce3d68b Merge pull request #1790 from bytecodealliance/pch/wiggle_error_transforms
wiggle: allow user-configurable error transformations
2020-06-02 09:38:38 -07:00
Chris Fallin
9fec933056 Merge pull request #1801 from jgouly/cmp-rebase
arm64: add support for I8X16 ICmp
2020-06-02 09:35:41 -07:00
Joey Gouly
90a421193f arm64: add support for I8X16 ICmp
Copyright (c) 2020, Arm Limited.
2020-06-02 16:58:09 +01:00
Benjamin Bouvier
67c7a3ed19 mach backend: reduce the size of the Inst enum down to 32 bytes; 2020-06-02 16:29:05 +02:00
Benjamin Bouvier
e227608510 mach backend: use vectors instead of sets to remember set of uses/defs for calls;
This avoids the set uniqueness (hashing) test, reduces memory
churn when re-mapping virtual register onto real registers, and is
generally more memory-efficient.
2020-06-02 16:29:05 +02:00
Benjamin Bouvier
cfa0527794 mach backend: have mem_finalize return a SmallVec;
This avoids a spurious reallocation of the SmallVec containing the
load_constants result to a Vec, which appeared in dhat profiles.
2020-06-02 16:29:05 +02:00
teapotd
1acbad089a [bugpoint] Resolve aliases after reduction 2020-06-01 17:13:05 -07:00
teapotd
b3763223ab [bugpoint] Convert more types to constants 2020-06-01 17:13:05 -07:00
teapotd
e0d7f1a91b [bugpoint] Try to move instructions to the entry block 2020-06-01 17:13:05 -07:00
Nick Fitzgerald
58b08b9d3a Move HostRef<T> into the C API crate
It isn't used by anything except for the C API and all of our embedder-exposed
APIs are already internally `Rc`-based, so it doesn't make sense to use with
them.
2020-06-01 15:09:51 -07:00