Warp: Enable trial-inlining for FunCall
Categories
(Core :: JavaScript Engine: JIT, task, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox82 | --- | fixed |
People
(Reporter: iain, Assigned: iain)
References
Details
Attachments
(2 files)
Building on the work done in bug 1646378, these patches allow us to inline through Function.prototype.call
.
Assignee | ||
Comment 1•4 years ago
|
||
Baseline call ICs can have 5 different argument formats (normal, spread, funcall, funapply-args, funapply-array). Some of these, like funcall, can be converted into a normal MCall by modifying the fields of the CallInfo. Others, like spread calls, are represented by different MIR nodes.
Inlining doesn't generate an MCall but also has to use the correct arguments. To avoid duplicating code, this patch splits out a helper function that updates CallInfo where possible, and returns an enum value to trigger special handling for more exotic cases. (When handling spread calls and funapply-array, I suspect that we will want to move the enum inside CallInfo, but I'm holding off on that until I actually try writing that code.)
Assignee | ||
Comment 2•4 years ago
|
||
Depends on D87909
Pushed by iireland@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/125a30bcf8d7 Factor out argument fixup code r=jandem https://hg.mozilla.org/integration/autoland/rev/6ada5dbc83d1 Inline FunCall r=jandem
Comment 4•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/125a30bcf8d7
https://hg.mozilla.org/mozilla-central/rev/6ada5dbc83d1
Description
•