Closed Bug 1722962 Opened 3 years ago Closed 2 years ago

Directly construct JS permanent atoms at startup

Categories

(Core :: JavaScript Engine, task, P3)

task

Tracking

()

RESOLVED FIXED
97 Branch
Tracking Status
firefox97 --- fixed

People

(Reporter: tcampbell, Assigned: arai)

References

(Blocks 1 open bug)

Details

Attachments

(10 files, 1 obsolete file)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

Currently the permanent atoms set is filled in by normal execution and atomization of the selfhosting data, and then in JSRuntime::initMainAtomsTables it is converted to the permanent set. Since we use Stencil for self-hosting now, the surface area for atom creation during startup is much much smaller and we should be able to directly construct the atom set.

This lets us remove special cases for early-startup from the AtomizeChars code.

Severity: -- → S4
Priority: -- → P3
Assignee: nobody → arai.unmht
Blocks: 1745687
Attachment #9255000 - Attachment description: Bug 1722962 - Part 7: Add PermanentlyAtomizeChars that skips zone. r?tcampbell! → Bug 1722962 - Part 7: Add PermanentlyAtomizeChars that skips zone cache. r?tcampbell!
Attachment #9255002 - Attachment description: Bug 1722962 - Part 9: Specialize permanent atom allocation with no pre-calculated index value. r?tcampbell! → Bug 1722962 - Part 9: Specialize AllocateNewAtom for permanent atoms. r?tcampbell!
Attachment #9255004 - Attachment is obsolete: true
Pushed by arai_a@mac.com:
https://hg.mozilla.org/integration/autoland/rev/378effea871d
Part 1: Split JSRuntime::initSelfHosting into compile part and instantiation part. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/964694eebaa9
Part 2: Move JSRuntime::createJitRuntime call after permanent atom table initialization. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/eac4e152c9ad
Part 3: Split JSRuntime::InitSelfHostingFromStencil into atom part and other part. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/318bec5fefa5
Part 4: Add JS::AutoAssertNoGC around atom/symbol initialization. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/e30948486bcd
Part 5: Fold JSRuntime::initSelfHostingAtomsFromStencil into JSRuntime::initializeAtoms. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/ad4cf3cdab04
Part 6: Fold JSRuntime::initMainAtomsTables into JSRuntime::initializeAtoms. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/325ee4e8c739
Part 7: Add PermanentlyAtomizeChars that skips zone cache. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/86e051127db1
Part 8: Remove special case for permanent atom from AtomizeAndCopyCharsFromLookup. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/11879610af4a
Part 9: Specialize AllocateNewAtom for permanent atoms. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/e01b60ec09e8
Part 10: Move AtomSet out of JSRuntime, and stop tracing. r=tcampbell
Blocks: 1756080
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: