Closed Bug 1760989 Opened 2 years ago Closed 2 years ago

Make Warp not depend on JSOp::FunCall op, remove JSOp::FunCall

Categories

(Core :: JavaScript Engine, task, P3)

task

Tracking

()

RESOLVED FIXED
100 Branch
Tracking Status
firefox100 --- fixed

People

(Reporter: jandem, Assigned: jandem)

References

Details

Attachments

(7 files)

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.

Replace MResumePoint::Mode with a ResumeMode enum class. Instead of having one
"Outer" case, use different values for inlined Call, FunCall and Accessors.

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

We no longer have to encode this flag separately because it's redundant with
the ResumeMode value.

Depends on D141854

We had similar stack depth assertions in two different places. This code is now
deduplicated and cleaned up a bit.

Depends on D141855

We can now inline js::fun_call at other Call JSOps, and JSOp::FunCall can inline
other functions.

Depends on D141856

Depends on D141857

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
Regressions: 1761492
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: