Closed Bug 1677401 Opened 5 years ago Closed 5 years ago

Make fully-packed subset of scope AbstractData for stencil

Categories

(Core :: JavaScript Engine, task, P1)

task

Tracking

()

RESOLVED FIXED
86 Branch
Tracking Status
firefox86 --- fixed

People

(Reporter: arai, Assigned: arai)

References

Details

Attachments

(6 files)

Currently stencil and VM share single definition of scope AbstractData.
there are some problems:

  • GC pointer types shouldn't be part of stencil
    • FunctionScope::AbstractData::canonicalFunction
    • ModuleScope::AbstractData::module
    • WasmInstanceScope::AbstractData::instance
  • some AbstractData aren't packed, and not compatible with direct XDR encoding/decoding or pinned data
  • while instantiation, we copy header from stencil to VM data, but it copies padding too

Once we have fully-packed scope data, we can encode/decode the scope data at once by codeBytes

Depends on: 1677426

Split *Scope::Data into stencil and VM, with specialization for each.
Stencil variant doesn't contain pointer fields.

Depends on D99744

Stencil's *Scope::Data doesn't contain pointer and doesn't have to be aligned
to pointer size.
This removed extra padding between scope data items in vector.

Depends on D99745

Attachment #9193185 - Attachment description: Bug 1677401 - Part 5: Encode/decode the entire scope data at once. r?tcampbell! → Bug 1677401 - Part 5: Encode/decode the entire scope data at once. r?nbp!
Attachment #9193186 - Attachment description: Bug 1677401 - Part 6: Directly use ParserData type. r?tcampbell! → Bug 1677401 - Part 6: Directly use ParserData type. r?nbp!
Attachment #9193181 - Attachment description: Bug 1677401 - Part 1: Add scope SlotInfo struct for shared data between stencil and VM. r?tcampbell! → Bug 1677401 - Part 1: Add scope SlotInfo struct for shared data between stencil and VM. r?nbp!
Attachment #9193182 - Attachment description: Bug 1677401 - Part 2: Remove pointer from stencil scope data. r?tcampbell! → Bug 1677401 - Part 2: Remove pointer from stencil scope data. r?nbp!
Attachment #9193183 - Attachment description: Bug 1677401 - Part 3: Move alignas to JSAtom scope data. r?tcampbell! → Bug 1677401 - Part 3: Move alignas to JSAtom scope data. r?nbp!
Attachment #9193184 - Attachment description: Bug 1677401 - Part 4: Make ParserFunctionScopeData packed. r?tcampbell! → Bug 1677401 - Part 4: Make ParserFunctionScopeData packed. r?nbp!
Pushed by arai_a@mac.com: https://hg.mozilla.org/integration/autoland/rev/0940ad526195 Part 1: Add scope SlotInfo struct for shared data between stencil and VM. r=nbp https://hg.mozilla.org/integration/autoland/rev/bbbeb29c04c2 Part 2: Remove pointer from stencil scope data. r=nbp https://hg.mozilla.org/integration/autoland/rev/c972b09c5e56 Part 3: Move alignas to JSAtom scope data. r=nbp https://hg.mozilla.org/integration/autoland/rev/fb9fcbb1a089 Part 4: Make ParserFunctionScopeData packed. r=nbp https://hg.mozilla.org/integration/autoland/rev/798cf3bb1173 Part 5: Encode/decode the entire scope data at once. r=nbp https://hg.mozilla.org/integration/autoland/rev/22cc55f37833 Part 6: Directly use ParserData type. r=nbp
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: