Warp: Transpile Function.prototype.apply arguments optimization
Categories
(Core :: JavaScript Engine: JIT, task, P1)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox81 | --- | fixed |
People
(Reporter: iain, Assigned: iain)
References
Details
Attachments
(6 files)
|
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 |
These patches implement FunApplyArgs. I'll do FunApplyArray in a separate bug.
| Assignee | ||
Comment 1•5 years ago
|
||
- tryAttachFunApply was the last remaining use of GuardSpecificNativeFunction.
- The FunApplyArgs side of GuardFunApply can be reimplemented using existing CacheIR ops. We might be able to do a similar thing with GuardFunApplyArray, but it will require a bit of refactoring, so I'm leaving it as its own op for now.
- Like FunCall, FunApply now has a Specialized variant that guards on the specific target to make inlining easier.
| Assignee | ||
Comment 2•5 years ago
|
||
Depends on D86856
| Assignee | ||
Comment 3•5 years ago
|
||
GuardFunctionIsConstructor isn't necessary for FunApplyArgs, but it seemed reasonable to implement it now anyway.
Depends on D86857
| Assignee | ||
Comment 4•5 years ago
|
||
Depends on D86858
| Assignee | ||
Comment 5•5 years ago
|
||
We didn't have very good jit-test coverage of this code, so I'm also adding a simple testcase.
| Assignee | ||
Comment 6•5 years ago
|
||
It appears that the existing limit of 16 args for CacheIR was established when we first added FunApplyArray support in bug 906781 and never revisited.
Depends on D87681
Comment 8•5 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/85471158d0c5
https://hg.mozilla.org/mozilla-central/rev/9e22306cf2a2
https://hg.mozilla.org/mozilla-central/rev/f359af39ebfa
https://hg.mozilla.org/mozilla-central/rev/a0457890d336
https://hg.mozilla.org/mozilla-central/rev/0a552e8d736a
https://hg.mozilla.org/mozilla-central/rev/49ad63d4238d
Description
•