Fix some issues with JSOp::FunCall/FunApply ops
Categories
(Core :: JavaScript Engine, task, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox100 | --- | fixed |
People
(Reporter: jandem, Assigned: jandem)
References
Details
Attachments
(7 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 |
We currently only optimize these ops with ICs if we're calling the expected call/apply native function. This results in perf cliffs if we're calling a different function and also makes us more likely to run out of stack space (bug 1759412).
After Warp and the arguments analysis overhaul, it's now possible to remove JSOp::FunApply and to optimize more at JSOp::FunCall ops.
| Assignee | ||
Comment 1•4 years ago
|
||
- Turn
JSOp::FunApplycheck into an assertion because we don't inline there anymore. - Only call
GET_ARGCforIsInvokeOpops. - Turn final else-if statement into a release assertion.
We now always set numActualArgs_ in this loop, so we can delete the assertion
(when we had inlining for apply-arguments, we reused the value from the caller frame).
| Assignee | ||
Comment 2•4 years ago
|
||
The goal is to replace the JSOp-based check with something else so that we can remove
the JSOp.
Depends on D141614
| Assignee | ||
Comment 3•4 years ago
|
||
Also support the other call optimizations for JSOp::FunApply ops.
Depends on D141615
| Assignee | ||
Comment 4•4 years ago
|
||
Depends on D141616
| Assignee | ||
Comment 5•4 years ago
|
||
If either the JSOp or CallFlags is FunCall, the other should match because that's
what Warp expects.
Depends on D141617
| Assignee | ||
Comment 6•4 years ago
|
||
Allow other call optimizations at JSOp::FunCall and allow optimizing fun_call
at other call ops.
Depends on D141618
| Assignee | ||
Comment 7•4 years ago
|
||
Depends on D141619
Updated•4 years ago
|
Comment 9•4 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/d87a42f290e6
https://hg.mozilla.org/mozilla-central/rev/0ad0428fad88
https://hg.mozilla.org/mozilla-central/rev/0e59b292fb48
https://hg.mozilla.org/mozilla-central/rev/e728ed5c9db2
https://hg.mozilla.org/mozilla-central/rev/ac9b8297416e
https://hg.mozilla.org/mozilla-central/rev/fb669efa4435
https://hg.mozilla.org/mozilla-central/rev/f92971683f01
Description
•