Remove old arguments analysis code
Categories
(Core :: JavaScript Engine: JIT, task, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox90 | --- | fixed |
People
(Reporter: iain, Assigned: iain)
References
Details
Attachments
(12 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 | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details |
Bug 1688033 rewrote the arguments analysis using escape analysis. That code will ride the trains in 89; once 90 opens, we should remove the old code.
Assignee | ||
Comment 1•4 years ago
|
||
This patch removes the needsArgsAnalysis
flag. Other flags will be cleaned up in a later patch.
Assignee | ||
Comment 2•4 years ago
|
||
Depends on D114032
Assignee | ||
Comment 3•4 years ago
|
||
The HAS_ARGS_OBJ
flag in BaselineFrame needs to stick around for the baseline interpreter, but it's immutable for the baseline compiler. (The next patch will move needsArgsObj
from MutableFlags to ImmutableFlags.)
Depends on D114033
Assignee | ||
Comment 4•4 years ago
|
||
After the previous patches, JSScript still has three flags related to arguments analysis. Two of them are immutable (argumentsHasVarBinding
and alwaysNeedsArgsObj
), and one is mutable (needsArgsObj
). We can simplify this down to just needsArgsObj
, which is now immutable.
After the simplification, there's no longer any difference between argsObjAliasesFormals
and argumentsAliasesFormals
.
Depends on D114034
Assignee | ||
Comment 5•4 years ago
|
||
Depends on D114035
Assignee | ||
Comment 6•4 years ago
|
||
The next patch removes CallFlags::FunApplyMagicArgs.
Depends on D114036
Assignee | ||
Comment 7•4 years ago
|
||
Depends on D114169
Assignee | ||
Comment 8•4 years ago
|
||
Depends on D114170
Assignee | ||
Comment 9•4 years ago
|
||
There's a separate usecase here that overloaded JS_OPTIMIZED_ARGUMENTS. getMissingArgumentsMaybeSentinelValue returns JS_OPTIMIZED_ARGUMENTS if it can't recreate the arguments object. The comment on createMissingArguments explains that this occurs if the environment is dead; see tests/debug/Frame-eval-12.js
, where we return an inner function that subsequently tries to access its parent's arguments. There's a bunch of code on the devtools side of the wall to handle this case, and we have test coverage, so instead of ripping this out I'm just rewriting it to use a different magic value.
Depends on D114171
Assignee | ||
Comment 10•4 years ago
|
||
The only remaining caller of SetFrameArgumentsObject is FinishBailoutToBaseline.
Depends on D114172
Assignee | ||
Comment 11•4 years ago
|
||
Depends on D114173
Assignee | ||
Comment 12•4 years ago
|
||
Depends on D114174
Updated•4 years ago
|
Updated•4 years ago
|
Comment 13•4 years ago
|
||
Comment 14•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/ce61dab689b9
https://hg.mozilla.org/mozilla-central/rev/bf132d76a357
https://hg.mozilla.org/mozilla-central/rev/c7784fbc5ac7
https://hg.mozilla.org/mozilla-central/rev/2d6ddfca0a01
https://hg.mozilla.org/mozilla-central/rev/97a240f4593b
https://hg.mozilla.org/mozilla-central/rev/f0c3565b1841
https://hg.mozilla.org/mozilla-central/rev/de19cbf58624
https://hg.mozilla.org/mozilla-central/rev/1532bdab7a74
https://hg.mozilla.org/mozilla-central/rev/43d61f75ce6f
https://hg.mozilla.org/mozilla-central/rev/1738078ae073
https://hg.mozilla.org/mozilla-central/rev/e2cacd540779
https://hg.mozilla.org/mozilla-central/rev/11741e1b7f70
Description
•