Closed Bug 1807159 Opened 1 year ago Closed 1 year ago

Inline `GetNativeDataPropertyByValuePure` in Ion when possible

Categories

(Core :: JavaScript Engine: JIT, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED
110 Branch
Tracking Status
firefox110 --- fixed

People

(Reporter: alexical, Assigned: alexical)

References

(Blocks 2 open bugs)

Details

(Whiteboard: [sp3])

Attachments

(2 files)

Since Jan's recent addition of the lastLookups_ cache in StringToAtomCache, part of the string atomization workflow is easier to write as masm and not so much code to worry about bloating things. This made me interested in revisiting whether we should try to inline GetNativeDataPropertyByValuePure, as previously I had concluded that we missed too often due to not having atom strings. Running my prototype of this through try I see pretty green results for React-Redux-TodoMVC and Elm-TodoMVC. Quite a bit of this seems to overlap with bug 1799025, but I think they are both worth doing anyway.

Assignee: nobody → dothayer
Status: NEW → ASSIGNED

This changes our JIT megamorphic cache accessors to hit more often by allowing
them to look up strings in the first level of StringToAtomCache's cache.

This also extracts the common bit of code from the HasProp case as well as the
common code from the GetProp case in order to merge them together for the
GetElem case.

Depends on D165427

Blocks: sm-jits
Severity: -- → N/A
Priority: -- → P1
Pushed by dothayer@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/3c3f18541794
Use the StringToAtomCache's lastLookups from JIT r=jandem
https://hg.mozilla.org/integration/autoland/rev/b17b04940a8f
Inline MegamorphicLoadSlotByValue r=jandem
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 110 Branch

This saw something like a 3% win on React-Redux-TodoMVC and similar on React-TodoMVC and Elm-TodoMVC

Blocks: 1810243
Whiteboard: [sp3]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: