Consider using CompilationState directly from CompilationStencil during delazification
Categories
(Core :: JavaScript Engine, task, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox88 | --- | fixed |
People
(Reporter: tcampbell, Assigned: arai)
References
(Blocks 1 open bug)
Details
Attachments
(16 files, 9 obsolete files)
|
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 | |
|
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 |
The CompilationState structure is stack-allocated and used directly by parser to accumulate stencil data. We currently then convert this to the final stencil structure. In the case of delazification (and probably eval), if we aren't going to cache the stencil then we should just use the CompilationState directly. Since the CompilationStencil uses Spans, we can just point into the CompilationState similar to we do for XDR decode.
| Assignee | ||
Comment 1•4 years ago
|
||
I have another idea about optimizing away the copy inside CompilationState::finish, in bug 1692648.
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Assignee | ||
Comment 11•4 years ago
|
||
uh, sorry, I wrote wrong bug number :P
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Comment hidden (obsolete) |
| Assignee | ||
Comment 21•4 years ago
|
||
bug 1687095 patch achieves it, as part of making "merge" operation work.
https://phabricator.services.mozilla.com/D105154
that patch stack, including bug 1692648, moves stencil-related fields of CompilationState into Vector-variant of CompilationStencil,
and makes the instantiation logic compatible with it.
| Reporter | ||
Updated•4 years ago
|
| Assignee | ||
Comment 22•4 years ago
|
||
BorrowingCompilationStencil provides a CompilationStencil instance that
borrows all ExtensibleCompilationStencil data,
Depends on D105892
| Assignee | ||
Comment 23•4 years ago
|
||
Depends on D105893
| Assignee | ||
Comment 24•4 years ago
|
||
Depends on D105894
| Assignee | ||
Comment 25•4 years ago
|
||
Make all classes to follow init() + compile() + stencil().
stencil() returns a reference to ExtensibleCompilationStencil, and consumer
can either use BorrowingCompilationStencil to create temporary
CompilationStencil from it, or use ExtensibleCompilationStencil::finish to
get non-temporary CompilationStencil.
Depends on D105895
| Assignee | ||
Comment 26•4 years ago
|
||
To support instantiating without heap-allocate CompilationStencil, modify
CompileGlobalScriptToStencil to receive either CompilationStencil pointer or
CompilationGCOutput pointer, and if CompilationGCOutput pointer is passed,
instantiate it internally.
Depends on D105896
| Assignee | ||
Comment 27•4 years ago
|
||
For the case the consumer needs heap-allocated ExtensibleCompilationStencil,
make CompileGlobalScriptToStencilAndMaybeInstantiate possible to also return
ExtensibleCompilationStencil.
Depends on D105897
| Assignee | ||
Comment 28•4 years ago
|
||
Also cleanup JSRuntime::initSelfHosting not to reuse already-initialized
CompilationInput from decode to compile.
Depends on D105898
| Assignee | ||
Comment 29•4 years ago
|
||
Depends on D105899
| Assignee | ||
Comment 30•4 years ago
|
||
Depends on D105900
| Assignee | ||
Comment 31•4 years ago
|
||
Depends on D105901
| Assignee | ||
Comment 32•4 years ago
|
||
Depends on D105902
| Assignee | ||
Comment 33•4 years ago
|
||
Depends on D105903
| Assignee | ||
Comment 34•4 years ago
|
||
Depends on D105904
| Assignee | ||
Comment 35•4 years ago
|
||
Depends on D105905
| Assignee | ||
Comment 36•4 years ago
|
||
Depends on D105906
| Assignee | ||
Comment 37•4 years ago
|
||
reflect_parse wasn't using CompilationStencil, but uses
ExtensibleCompilationStencil in CompilationState.
Depends on D105907
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
|
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
|
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
|
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
|
Updated•4 years ago
|
Comment 38•4 years ago
|
||
Comment 39•4 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/a21a62d5bb75
https://hg.mozilla.org/mozilla-central/rev/386088c6a895
https://hg.mozilla.org/mozilla-central/rev/a0aa13363ec0
https://hg.mozilla.org/mozilla-central/rev/24c81af7409a
https://hg.mozilla.org/mozilla-central/rev/3ef7987a19b9
https://hg.mozilla.org/mozilla-central/rev/82c26c5615f5
https://hg.mozilla.org/mozilla-central/rev/55d1272f20fd
https://hg.mozilla.org/mozilla-central/rev/80291c93484e
https://hg.mozilla.org/mozilla-central/rev/c18e9015fe3b
https://hg.mozilla.org/mozilla-central/rev/2ff79c45b786
https://hg.mozilla.org/mozilla-central/rev/271602dcf18d
https://hg.mozilla.org/mozilla-central/rev/954ab0b62640
https://hg.mozilla.org/mozilla-central/rev/3f4ceb6458d7
https://hg.mozilla.org/mozilla-central/rev/b7676660de86
https://hg.mozilla.org/mozilla-central/rev/eb0886f3a78a
https://hg.mozilla.org/mozilla-central/rev/6a1f9a908a97
Description
•