Make Warp not depend on JSOp::FunCall op, remove JSOp::FunCall
Categories
(Core :: JavaScript Engine, task, P3)
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 |
In bug 1760605 we removed JSOp::FunApply
, but with some work it's possible to remove JSOp::FunCall
too. This will fix some perf cliffs around inlining and make things more robust.
Assignee | ||
Comment 1•2 years ago
|
||
Replace MResumePoint::Mode with a ResumeMode enum class. Instead of having one
"Outer" case, use different values for inlined Call, FunCall and Accessors.
Assignee | ||
Comment 2•2 years ago
|
||
Note that we can't add an extra field to RResumePoint without exceeding the
maximum RInstruction size of 16 bytes, so encode this value with the pc offset.
Depends on D141852
Assignee | ||
Comment 3•2 years ago
|
||
Depends on D141853
Assignee | ||
Comment 4•2 years ago
|
||
We no longer have to encode this flag separately because it's redundant with
the ResumeMode value.
Depends on D141854
Assignee | ||
Comment 5•2 years ago
|
||
We had similar stack depth assertions in two different places. This code is now
deduplicated and cleaned up a bit.
Depends on D141855
Assignee | ||
Comment 6•2 years ago
|
||
We can now inline js::fun_call at other Call JSOps, and JSOp::FunCall can inline
other functions.
Depends on D141856
Assignee | ||
Comment 7•2 years ago
|
||
Depends on D141857
Assignee | ||
Comment 8•2 years ago
|
||
arai, this removes another opcode, JSOp::FunCall
. Sorry for breaking the smoosh build again...
Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d3e03dcc03d5 part 1 - Refactor MResumePoint::Mode enum, add inlining cases. r=iain https://hg.mozilla.org/integration/autoland/rev/d6b5689a4248 part 2 - Encode ResumeMode in snapshots/RResumePoint. r=iain https://hg.mozilla.org/integration/autoland/rev/89cdb1dee7a8 part 3 - Use ResumeMode in bailouts, other places. r=iain https://hg.mozilla.org/integration/autoland/rev/efd9e8d40b4c part 4 - Use ResumeMode to determine resumeAfter. r=iain https://hg.mozilla.org/integration/autoland/rev/a5c379ff0fc7 part 5 - Factor out AssertBailoutStackDepth. r=iain https://hg.mozilla.org/integration/autoland/rev/1724821bbd78 part 6 - Remove trial inlining restrictions for FunCall. r=iain https://hg.mozilla.org/integration/autoland/rev/8c27c22d8b5b part 7 - Remove JSOp::FunCall. r=iain
Comment 10•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/d3e03dcc03d5
https://hg.mozilla.org/mozilla-central/rev/d6b5689a4248
https://hg.mozilla.org/mozilla-central/rev/89cdb1dee7a8
https://hg.mozilla.org/mozilla-central/rev/efd9e8d40b4c
https://hg.mozilla.org/mozilla-central/rev/a5c379ff0fc7
https://hg.mozilla.org/mozilla-central/rev/1724821bbd78
https://hg.mozilla.org/mozilla-central/rev/8c27c22d8b5b
Description
•