Optimize lexical variables in generator.
Categories
(Core :: JavaScript Engine, enhancement, P1)
Tracking
()
People
(Reporter: arai, Assigned: jorendorff)
References
(Blocks 3 open bugs)
Details
(Keywords: perf-alert, Whiteboard: [MemShrink:P2])
Attachments
(9 files)
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details |
Assignee | ||
Updated•7 years ago
|
Reporter | ||
Comment 1•7 years ago
|
||
Comment 2•7 years ago
|
||
Comment 3•6 years ago
|
||
I'm marking this as MemShrink because bug 1542660 shows that a failure to optimize can cause leaks.
Updated•6 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 4•4 years ago
|
||
Depends on D93380
Assignee | ||
Comment 5•4 years ago
|
||
Depends on D93381
Assignee | ||
Comment 6•4 years ago
|
||
Depends on D93382
Assignee | ||
Comment 7•4 years ago
|
||
Depends on D93383
Assignee | ||
Comment 8•4 years ago
|
||
Depends on D93384
Assignee | ||
Comment 9•4 years ago
|
||
This fixes bug 1542660 for the usual case (no direct eval, less than
ParseContext::GeneratorFixedSlotLimit locals), so this adds a unit test
contributed by Mathieu Hofman in that bug.
Depends on D93385
Assignee | ||
Comment 10•4 years ago
|
||
Depends on D93386
Assignee | ||
Comment 11•4 years ago
|
||
Without these changes, the tests fail because the engine returns
{optimizedOut: true}
for some uses of frame.environment.getVariable
and
frame.this
. The right solution probably involves teaching
DebugEnvironmentProxyHandler::handleUnaliasedAccess
how to access suspended
GeneratorObject
state.
Depends on D93387
Assignee | ||
Comment 12•4 years ago
|
||
No immediate effect, but when we start optimizing generator locals into stack
slots later in this stack, we do not want to optimize .generator
, as e.g.
js::GetGeneratorObjectForFrame assumes it is stored in the CallObject.
Before this patch, there was no way in the frontend to force binding to be
closed-over.
Previously reviewed by jandem as part of D93381.
Depends on D93381
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
|
||
Comment 14•4 years ago
|
||
Backed out for bustage on NativeObject-inl.h
backout: https://hg.mozilla.org/integration/autoland/rev/3387fb054f3cffefb879cee4f6aabd8d193a2aec
failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=318744507&repo=autoland&lineNumber=18418
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 15•4 years ago
|
||
Comment 16•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/f98859c9c6ca
https://hg.mozilla.org/mozilla-central/rev/21ec34c72ce7
https://hg.mozilla.org/mozilla-central/rev/edd866af16c2
https://hg.mozilla.org/mozilla-central/rev/dac2bfed4348
https://hg.mozilla.org/mozilla-central/rev/a3782500d573
https://hg.mozilla.org/mozilla-central/rev/4b39f862e0e8
https://hg.mozilla.org/mozilla-central/rev/191c45160e4c
https://hg.mozilla.org/mozilla-central/rev/e87f9a52024c
https://hg.mozilla.org/mozilla-central/rev/3a1b79f753e2
Comment 17•4 years ago
|
||
== Change summary for alert #27254 (as of Sun, 18 Oct 2020 03:44:26 GMT) ==
Improvements:
Ratio | Suite | Test | Platform | Options | Absolute values (old vs new) |
---|---|---|---|---|---|
8% | raptor-ares6-firefox | macosx1014-64-shippable | 67.71 -> 62.02 | ||
7% | raptor-ares6-firefox | linux64-shippable | 58.56 -> 54.27 | ||
7% | raptor-ares6-firefox | windows10-64-shippable-qr | webrender | 63.50 -> 58.97 | |
7% | raptor-ares6-firefox | windows10-64-shippable | 63.21 -> 58.83 | ||
6% | raptor-ares6-firefox | windows7-32-shippable | 63.59 -> 59.66 | ||
6% | raptor-ares6-firefox | linux64-shippable-qr | webrender | 57.92 -> 54.40 |
For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=27259
Assignee | ||
Updated•4 years ago
|
Updated•4 years ago
|
Description
•