Closed Bug 1879010 Opened 2 years ago Closed 1 year ago

Initial attempt to implement lazy tiering for wasm

Categories

(Core :: JavaScript: WebAssembly, enhancement, P1)

enhancement

Tracking

()

RESOLVED DUPLICATE of bug 1891182

People

(Reporter: jseward, Assigned: jseward)

References

(Blocks 1 open bug)

Details

Attachments

(2 files, 8 obsolete files)

Make a first attempt to implement lazy tiering for wasm.

Attached patch bug1879010-new-toplevel.diff-5 (obsolete) — Splinter Review

A backup of WIP; is not good for anything right now.

Attached patch bug1879010-new-toplevel.diff-8 (obsolete) — Splinter Review

Can run BaselineCompileFunctions on functions in parallel.
The resulting code and metadata is not yet collected up, though.

Attachment #9380186 - Attachment is obsolete: true
Attached patch bug1879010-new-toplevel.diff-10 (obsolete) — Splinter Review

Can run BaselineCompileFunctions on functions in parallel.
The resulting metadata is stashed in XCode.

Attachment #9380568 - Attachment is obsolete: true
Blocks: wasm-lang
Severity: -- → N/A
Priority: -- → P1
Attached patch bug1879010-new-toplevel.diff-12 (obsolete) — Splinter Review

Can complete new WebAssembly.Module(..) for
jit-test/tests/wasm/bench/wasm_box2d.wasm (baseline compilation only).
I'm sure the resulting code is not runnable though.

Attachment #9380942 - Attachment is obsolete: true
Attached patch bug1879010-new-toplevel.diff-17 (obsolete) — Splinter Review

Can baseline-compile, instantiate and run the simple test case attached in
comment 6. Patch applies against m-c 691891:16becc119397.

Attachment #9381932 - Attachment is obsolete: true
Attached file badness134.js

A simple test case for the patch in comment 5. Run with:
./dist/bin/js --wasm-compiler=baseline --no-ion badness134.js.

Attached patch bug1879010-new-toplevel.diff-21 (obsolete) — Splinter Review

The patch gradually comes to life. On x86_64-linux, this passes all 147
wasm/gc tests:

../src/jit-test/jit_test.py --args="--wasm-compiler=baseline --no-ion" \
                            -no-xdr -f ./dist/bin/js wasm/gc

and about 3200 of the circa 4000 wasm/ tests. Still baseline-only at this
point.

Attachment #9382550 - Attachment is obsolete: true
Attached patch bug1879010-new-toplevel.diff-23 (obsolete) — Splinter Review

Revised patch, still baseline only. Passes 3472 tests, fails 281. Anything
involving debugging, profiling, disassembly, explicit tiering, and probably a
bunch of other stuff, is still broken.
Applies against m-c 691891:16becc119397.

Attachment #9389955 - Attachment is obsolete: true
Attached patch bug1879010-new-toplevel.diff-27 (obsolete) — Splinter Review

With:

  • a top level summary of changes (top of WasmTopLevel.cpp)
  • initial work for debug-mode incremental tiering up
  • major rework/clarification of fmFinishModule
  • baseline compilation is really done in parallel now (bug fix)
Attachment #9390491 - Attachment is obsolete: true

Final patch; this line of patches has been abandoned in favour of a more
incremental approach.

Attachment #9393840 - Attachment is obsolete: true

As Julian noted, we're going with a more incremental approach that was started in bug 1891182.

Status: NEW → RESOLVED
Closed: 1 year ago
Duplicate of bug: 1891182
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: