Use ParserAtom index in stencil
Categories
(Core :: JavaScript Engine, task, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox84 | --- | fixed |
People
(Reporter: arai, Assigned: arai)
References
Details
Attachments
(12 files, 13 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 | |
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 |
Currently ParserAtoms are referred by pointer inside stencil structure.
If we can replace it with ParserAtom index inside vector (added by bug 1674351),
The struct size and variant size gets reduced, and also we can directly encode the index into XDR buffer.
Assignee | ||
Updated•3 months ago
|
Assignee | ||
Comment 1•3 months ago
|
||
TODO:
- Use separate storage for "all frontend atoms" and "atoms used by stencil"
- Add 28-bit limitation to the number of parser atom
- Add
TaggedAtomIndex
that represents allParserAtom
kind in 32-bit - Encode/decode "atoms used by stencil" at the beginning, instead of switching between buffer while encoding fields
- Use
TaggedAtomIndex
in stencil fields
Assignee | ||
Comment 2•3 months ago
|
||
Now ParserAtomsTable in CompilationState uses different storage than
CompilationStencil.parserAtomData, and when storing a parser atom into
any of stencil field, the atom is copied to CompilationStencil.parserAtomData.
As a result, all atoms inside CompilationStencil.parserAtomData are used by
stencil and allocation/instantiation gets simpler.
This replaces markUsedByStencil with storeIntoStencil, and slightly moves the
callsite, to get access to CompilationInfo.
Later patch will modify storeIntoStencil to return an index, and all
ParserAtom* field will be replaced by the index.
Assignee | ||
Comment 3•3 months ago
|
||
Also add 28-bit limitation to the number of parser atoms.
Later patch will add null tag, and also move well-known/static1/static2 into
sub tag.
Depends on D96240
Assignee | ||
Comment 4•3 months ago
|
||
Depends on D96241
Assignee | ||
Comment 5•3 months ago
|
||
Depends on D96242
Assignee | ||
Comment 6•3 months ago
|
||
Depends on D96243
Assignee | ||
Comment 7•3 months ago
|
||
To use index in nullable atom field, add null tag.
Depends on D96244
Assignee | ||
Comment 8•3 months ago
|
||
Added infrastructure for handling TaggedAtomIndex in stencil instantiation and
encode/decode, and replaced ScriptStencil.functionAtom with TaggedAtomIndex
as an example consumer.
Depends on D96245
Assignee | ||
Comment 9•3 months ago
|
||
Depends on D96246
Assignee | ||
Comment 10•3 months ago
|
||
Depends on D96247
Assignee | ||
Comment 11•3 months ago
|
||
Depends on D96248
Assignee | ||
Comment 12•3 months ago
|
||
Depends on D96249
Assignee | ||
Comment 13•3 months ago
|
||
Depends on D96250
Updated•3 months ago
|
Assignee | ||
Comment 14•3 months ago
|
||
Now ParserAtomsTable doesn't build CompilationStencil.parserAtomData.
CompilationStencil.parserAtomData is built when storing a parser atom into
any of stencil field.
As a result, all atoms inside CompilationStencil.parserAtomData are used by
stencil and allocation/instantiation gets simpler.
This replaces markUsedByStencil with storeIntoStencil, and slightly moves the
callsite, to get access to CompilationInfo.
Later patch will modify storeIntoStencil to return an index, and all
ParserAtom* field will be replaced by the index.
Updated•3 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Assignee | ||
Comment 15•2 months ago
|
||
Assignee | ||
Comment 16•2 months ago
|
||
Depends on D96908
Assignee | ||
Comment 17•2 months ago
|
||
Depends on D96909
Assignee | ||
Comment 18•2 months ago
|
||
Depends on D96910
Assignee | ||
Comment 19•2 months ago
|
||
Depends on D96911
Assignee | ||
Comment 20•2 months ago
|
||
Depends on D96912
Assignee | ||
Comment 21•2 months ago
|
||
Depends on D96913
Assignee | ||
Comment 22•2 months ago
|
||
Depends on D96914
Assignee | ||
Comment 23•2 months ago
|
||
Depends on D96915
Assignee | ||
Comment 24•2 months ago
|
||
Depends on D96916
Assignee | ||
Comment 25•2 months ago
|
||
Depends on D96917
Assignee | ||
Comment 26•2 months ago
|
||
Depends on D96918
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Comment 27•2 months ago
|
||
Pushed by arai_a@mac.com: https://hg.mozilla.org/integration/autoland/rev/0210295f9234 Part 1: Move getWellKnown/getStatic1/getStatic2 impl to WellKnownParserAtoms. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/5e683e6376b9 Part 2: Add getWellKnown/getStatic1/getStatic2 to ParserAtomsTable. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/b2dc7bdd01dc Part 3: Add {ParserAtomsTable,ParserAtomVectorBuilder}::getParserAtom. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/f8de842b23db Part 4: Use TaggedParserAtomIndex in ParserAtomEntry. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/5d6e0d22083f Part 5: Use TaggedParserAtomIndex in XDR. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/50e9d084764c Part 6: Add CompilationAtomCache.getExistingAtomAt with TaggedParserAtomIndex. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/3749d6d2325d Part 7: Add CompilationStencil::getParserAtomAt. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/f505b8fb8f8b Part 8: Use TaggedParserAtomIndex in ScriptStencil.functionAtom. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/73cc5fa0e0bd Part 9: Use TaggedParserAtomIndex in RegExpStencil.atom_. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/cb0e58368cd4 Part 10: Use TaggedParserAtomIndex in StencilModuleEntry. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/8af30c6d9bb9 Part 11: Use TaggedParserAtomIndex in ScriptThingVariant. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/ca60758cd534 Part 12: Use TaggedParserAtomIndex in ObjLiteralStencil. r=tcampbell
Comment 28•2 months ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/0210295f9234
https://hg.mozilla.org/mozilla-central/rev/5e683e6376b9
https://hg.mozilla.org/mozilla-central/rev/b2dc7bdd01dc
https://hg.mozilla.org/mozilla-central/rev/f8de842b23db
https://hg.mozilla.org/mozilla-central/rev/5d6e0d22083f
https://hg.mozilla.org/mozilla-central/rev/50e9d084764c
https://hg.mozilla.org/mozilla-central/rev/3749d6d2325d
https://hg.mozilla.org/mozilla-central/rev/f505b8fb8f8b
https://hg.mozilla.org/mozilla-central/rev/73cc5fa0e0bd
https://hg.mozilla.org/mozilla-central/rev/cb0e58368cd4
https://hg.mozilla.org/mozilla-central/rev/8af30c6d9bb9
https://hg.mozilla.org/mozilla-central/rev/ca60758cd534
Description
•