Implement wasm SIMD for x64 baseline
Categories
(Core :: JavaScript: WebAssembly, task, P3)
Tracking
()
People
(Reporter: bbouvier, Assigned: lth)
References
(Blocks 1 open bug)
Details
Attachments
(11 files, 3 obsolete files)
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
149.44 KB,
application/gzip
|
Details | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review |
| Assignee | ||
Comment 1•6 years ago
|
||
These are all the non-compilation, non-verification, non-parsing bits:
type and constant definitions, opcode dispatch, classification, etc.
There's a fair amount of fallout from adding a new V128 type but
within reason.
For the time being, use MIRType::Int8x16 as the MIRType for all SIMD
values. This only shows up in a couple of places in this patch,
notably where we convert Scalar to MIRType, and we can change it
easily.
Depends on D22295
Updated•6 years ago
|
| Assignee | ||
Comment 2•6 years ago
|
||
Depends on D22296
| Assignee | ||
Updated•6 years ago
|
| Assignee | ||
Updated•6 years ago
|
| Assignee | ||
Updated•5 years ago
|
| Assignee | ||
Comment 3•5 years ago
|
||
| Assignee | ||
Comment 4•5 years ago
|
||
Depends on D57940
| Assignee | ||
Comment 5•5 years ago
|
||
Depends on D57941
| Assignee | ||
Comment 6•5 years ago
|
||
Depends on D57942
Updated•5 years ago
|
Updated•5 years ago
|
| Assignee | ||
Comment 7•5 years ago
|
||
Depends on D57943
| Assignee | ||
Comment 8•5 years ago
|
||
Depends on D59111
| Assignee | ||
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
| Assignee | ||
Comment 9•5 years ago
|
||
Taking a dependency on compiler gating, since SIMD will be not-ion and we'll need a way to fall back from Ion to baseline if we go straight to Ion compilation.
Updated•5 years ago
|
| Assignee | ||
Comment 10•5 years ago
|
||
Depends on D59111
Updated•5 years ago
|
| Assignee | ||
Comment 11•5 years ago
|
||
Rebased; dead i64<->f64 opcodes removed; new integer abs opcodes added (as stubs).
| Assignee | ||
Comment 12•5 years ago
|
||
Rebased; updated to new gating logic; working on remaining operations.
Updated•5 years ago
|
| Assignee | ||
Comment 13•5 years ago
•
|
||
All operations have been implemented. In the process of cleaning up the porting APIs, and adding missing run-time support. The work has been re-scoped: x64 only, SSE4.1 required, no AVX support required or expected.
| Assignee | ||
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
| Assignee | ||
Comment 14•5 years ago
|
||
Depends on D59378
Updated•5 years ago
|
| Assignee | ||
Comment 15•5 years ago
|
||
Depends on D60856
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
| Assignee | ||
Comment 16•5 years ago
|
||
JS versions of the test cases in the SIMD spec, translated using the script at https://github.com/lars-t-hansen/run_wast.
| Assignee | ||
Comment 17•5 years ago
|
||
Patches updated this morning with misc fixes.
Current state of patches:
- all currently spec'd instructions are implemented
- code passes all our own tests and almost all the non-NaN-generating SIMD spec tests
- there is a known (as-yet undiagnosed) bug in i8x16.shr_s, uncovered by the SIMD spec tests
- the NaN-generating spec tests are not failing per se, they're just currently excluded by the test translator until equality testing can be got right
Also:
- There is some remaining work around proper #ifdeffery (to make sure we don't pay for SIMD when it's not enabled, esp on x86-32) and some related vetting of register saving / restoring, this will affect mainly part 1.
- We may want to import the spec tests in their non-canonically translated state as a new part 8, since the canonical import is not currently possible (no interpreter support in the SIMD repo).
For other things, see the SIMD worksheet (google doc).
| Assignee | ||
Comment 18•5 years ago
|
||
Depends on D68853
| Assignee | ||
Comment 19•5 years ago
|
||
Patches rebased and updated with review comments, only some detailed cleanup remaining.
| Assignee | ||
Comment 20•5 years ago
|
||
Depends on D71006
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
| Assignee | ||
Comment 21•5 years ago
|
||
Patch set is complete, testing is finished, try run is green. Will rebase daily until after the freeze and then land.
Comment 22•5 years ago
|
||
Comment 23•5 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/b48f9d171983
https://hg.mozilla.org/mozilla-central/rev/dede8f837d1d
https://hg.mozilla.org/mozilla-central/rev/6d61cc7132d6
https://hg.mozilla.org/mozilla-central/rev/fbe341549522
https://hg.mozilla.org/mozilla-central/rev/5e3c6893e69f
https://hg.mozilla.org/mozilla-central/rev/deb81ad6bfc2
https://hg.mozilla.org/mozilla-central/rev/587a9c21cec1
https://hg.mozilla.org/mozilla-central/rev/a95567deaf98
https://hg.mozilla.org/mozilla-central/rev/0f3e454359c9
https://hg.mozilla.org/mozilla-central/rev/643507d65bdd
Updated•5 years ago
|
Description
•