Closed Bug 1631228 Opened 4 months ago Closed 3 months ago

Implement wasm SIMD for x64 Ion

Categories

(Core :: Javascript: WebAssembly, task, P2)

x86_64
All
task

Tracking

()

RESOLVED FIXED
mozilla78
Tracking Status
firefox78 --- fixed

People

(Reporter: lth, Assigned: lth)

References

(Blocks 1 open bug)

Details

Attachments

(4 files, 2 obsolete files)

Add Ion support for wasm SIMD for x64, SSE4.1 or better, non-AVX. A lot of the code will simply be ported from the old SIMD.js code. A lot of the rest will just use the new masm interfaces introduced in bug 1478632.

Remove the MIRTypes for SIMD.js and instead add a single new type,
MIRType::Simd128, which is int/float and lane-width agnostic.

Remove various things that referenced the old types but were only
useful for SIMD.js and should have been removed before.

Depends on D71006

Attachment #9142155 - Attachment description: Bug 1631228 - wasm ion simd, ion code generation + masm (WIP) → Bug 1631228 - wasm ion simd, part 3: ion code generation

All instructions implemented; passes all our in-house tests and translated spec tests.

Attachment #9144973 - Attachment description: Bug 1631228 - wasm ion simd, part 2: macroassembler and other infrastructure → Bug 1631228 - wasm ion simd, part 2: MacroAssembler and other infrastructure
Depends on: 1635091
Attachment #9142153 - Attachment description: Bug 1631228 - wasm ion simd, part 0: remove old SIMD MIRTypes → Bug 1631228 - wasm ion simd, part 0: remove old SIMD MIRTypes. r?bbouvier
Attachment #9142154 - Attachment description: Bug 1631228 - wasm ion simd, part 1: enablement + test directives → Bug 1631228 - wasm ion simd, part 1: enablement + test directives. r?bbouvier
Attachment #9144973 - Attachment description: Bug 1631228 - wasm ion simd, part 2: MacroAssembler and other infrastructure → Bug 1631228 - wasm ion simd, part 2: MacroAssembler and other infrastructure. r?bbouvier
Attachment #9142155 - Attachment description: Bug 1631228 - wasm ion simd, part 3: ion code generation → Bug 1631228 - wasm ion simd, part 3: ion code generation. r?bbouvier
Depends on: 1637328
Blocks: 1637332
Depends on: 1637506

Depends on D71820

Attachment #9142153 - Attachment description: Bug 1631228 - wasm ion simd, part 0: remove old SIMD MIRTypes. r?bbouvier → Bug 1631228 - wasm ion simd, part 0: remove old SIMD MIRTypes. r=bbouvier
Severity: -- → N/A
Priority: P3 → P2
Attachment #9148033 - Attachment is obsolete: true
Attachment #9142154 - Attachment description: Bug 1631228 - wasm ion simd, part 1: enablement + test directives. r?bbouvier → Bug 1631228 - wasm ion simd, part 1: enablement + test directives. r=bbouvier
Attachment #9144973 - Attachment description: Bug 1631228 - wasm ion simd, part 2: MacroAssembler and other infrastructure. r?bbouvier → Bug 1631228 - wasm ion simd, part 2: MacroAssembler and other infrastructure. r=bbouvier
Attachment #9142155 - Attachment description: Bug 1631228 - wasm ion simd, part 3: ion code generation. r?bbouvier → Bug 1631228 - wasm ion simd, part 3: ion code generation. r=bbouvier
Pushed by lhansen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/53f7064dc0de
wasm ion simd, part 0: remove old SIMD MIRTypes. r=bbouvier
https://hg.mozilla.org/integration/autoland/rev/ae9d7bc02ca4
wasm ion simd, part 1: enablement + test directives. r=bbouvier,perftest-reviewers
https://hg.mozilla.org/integration/autoland/rev/9aacd7b8b252
wasm ion simd, part 2: MacroAssembler and other infrastructure. r=bbouvier
https://hg.mozilla.org/integration/autoland/rev/38d4e11b069b
wasm ion simd, part 3: ion code generation. r=bbouvier
Blocks: 1639464

Comment on attachment 9149500 [details]
Bug 1631228 - wasm ion simd, part 4: optimize shuffle (NEW WIP)

Revision D75617 was moved to bug 1639464. Setting attachment 9149500 [details] to obsolete.

Attachment #9149500 - Attachment is obsolete: true
Blocks: 1639517
Regressions: 1641973
Regressions: 1644759
You need to log in before you can comment on or make changes to this bug.