Separate compilation to stencil, and instantiation
Categories
(Core :: JavaScript Engine, task, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox82 | --- | fixed |
People
(Reporter: arai, Assigned: arai)
References
Details
Attachments
(11 files, 1 obsolete file)
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 |
Once compilation to stencil stops touching GC things, the only part that touches GC things will be stencil instantiation (and some part that touches input GC things, that can be refactored in separate bug).
We can move the stencil instantiation part out of existing frontend API, so that helper thread can do only the compilation to stencil, and let the main thread instantiate the stencil.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
CompileGlobalScriptToStencil returns CompilationStencil in CompilationInfo as the result of compilation,
and the consumer can call InstantiateStencils to instantiate GC objects,
that can be done later and in different thread.
Assignee | ||
Comment 2•4 years ago
|
||
Depends on D88592
Assignee | ||
Comment 3•4 years ago
|
||
ParseTask generates CompilationInfo, that contains both input and stencil output.
and the main thread grabs it and instantiate it on the main thread, when finishting the compilation.
Depends on D88593
Assignee | ||
Comment 4•4 years ago
|
||
Depends on D88594
Assignee | ||
Comment 5•4 years ago
|
||
Stop exposing CompilationGCOutput where the consumer doesn't need to instantiate stencil in different step.
Depends on D88595
Assignee | ||
Comment 6•4 years ago
|
||
Depends on D88596
Assignee | ||
Comment 7•4 years ago
|
||
Compile{Foo} for public API, and Compile{Foo}Impl for internal template functions.
Depends on D88597
Assignee | ||
Comment 8•4 years ago
|
||
Depends on D88598
Assignee | ||
Comment 9•4 years ago
|
||
Depends on D88599
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 10•4 years ago
|
||
Depends on D88594
Assignee | ||
Comment 11•4 years ago
|
||
Depends on D88986
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 12•4 years ago
|
||
Depends on D88594
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Comment 13•4 years ago
|
||
Pushed by arai_a@mac.com: https://hg.mozilla.org/integration/autoland/rev/4a8df2bc7713 Part 1: Add frontend::CompileGlobalScriptToStencil and frontend::InstantiateStencils. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/6cb5b3f713dd Part 2: Add frontend::ParseModuleToStencil. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/99f6e246e715 Part 3: Support instantiating stencil in main thread for off-thread script/module compilation. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/30679d02144c Part 4: Defer enclosingScope init for modules. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/c2dceacc711d Part 5: Make ParseTask.parseGlobal nullable. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/6420c7e18983 Part 6: Stop creating parse global if useOffThreadParseGlobal is set to false. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/e1b43ff866ed Part 7: Simplify main-thread API for CompileGlobalScript. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/d6286e1b523b Part 8: Simplify CompileEvalScript. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/855bd5d9ef0b Part 9: Rename module functions to align with others. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/d36b22eff759 Part 10: Do not call fixEnclosingEnvironmentAfterRealmMerge if useOffThreadParseGlobal is false. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/051b96a02b5a Part 11: Perform ModuleObject::Freeze in CompilationInfo::instantiateStencils if instantiating on main thread. r=tcampbell
Comment 14•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/4a8df2bc7713
https://hg.mozilla.org/mozilla-central/rev/6cb5b3f713dd
https://hg.mozilla.org/mozilla-central/rev/99f6e246e715
https://hg.mozilla.org/mozilla-central/rev/30679d02144c
https://hg.mozilla.org/mozilla-central/rev/c2dceacc711d
https://hg.mozilla.org/mozilla-central/rev/6420c7e18983
https://hg.mozilla.org/mozilla-central/rev/e1b43ff866ed
https://hg.mozilla.org/mozilla-central/rev/d6286e1b523b
https://hg.mozilla.org/mozilla-central/rev/855bd5d9ef0b
https://hg.mozilla.org/mozilla-central/rev/d36b22eff759
https://hg.mozilla.org/mozilla-central/rev/051b96a02b5a
Description
•