Open Bug 1926477 Opened 4 months ago Updated 1 day ago

Calling the getter in js::jit::GetPropertyCached is too slow in TodoMVC-jQuery on Android

Categories

(Core :: JavaScript Engine: JIT, defect, P2)

defect

Tracking

()

ASSIGNED

People

(Reporter: denispal, Assigned: alexical, NeedInfo)

References

(Blocks 2 open bugs)

Details

(Whiteboard: [js-perf-next][sp3])

Attachments

(1 file)

We are 3x slower than Chrome for the function "V" that's part of the TodoMVC-jQuery test, found here:
https://github.com/mozilla/Speedometer/blob/537d5769ef9ef3fa9a236884eae4d109c0628833//resources/todomvc/architecture-examples/jquery/dist/jquery.min.js#L2

We spend a lot of time in js::jit::GetPropertyCached, specifically calling js::CallGetter.

Firefox: https://share.firefox.dev/4dVlozp
Chrome: https://share.firefox.dev/40kRQIx

Whiteboard: [js-perf-next]
Severity: -- → S3
Priority: -- → P2

Alex and I discussed this, and we think that we should be able to make some improvements here.

In bug 1878158, we added initial support for getters in megamorphic GetProp. MegamorphicLoadSlotPermissive won't bail out if it sees a getter, but it still calls into the VM to do the actual call. Doing the call from jitcode is also possible; it's just a matter of implementation.

Because getters come in various flavours (scripted JS, native C++, etc), the most robust way to implement this may be to lean on the existing generic call trampoline.

Whiteboard: [js-perf-next] → [js-perf-next][sp3]
Assignee: nobody → dothayer
Status: NEW → ASSIGNED
Attachment #9438120 - Attachment description: WIP: Bug 1926477 → Bug 1926477 - Call getters from permissive megamorphic jit code r?iain
Pushed by dothayer@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b82a6af2a937 Call getters from permissive megamorphic jit code r=iain

Backed out changeset b82a6af2a937 (Bug 1926477) for causing SM bustages

Push with failures

Failure log

Backout link

Flags: needinfo?(dothayer)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: