IonMonkey: Implement SETELEM IC for property name indexes.

NEW
Unassigned

Status

()

Core
JavaScript Engine
4 years ago
3 years ago

People

(Reporter: nbp, Unassigned)

Tracking

(Blocks: 2 bugs)

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [ion:t])

Attachments

(1 attachment, 1 obsolete attachment)

(Reporter)

Description

4 years ago
+++ This bug was initially created as a clone of Bug #774006 +++

Bug 774006 focus on doing the SetElementIC with an integer key, we should do the same for property names, when we see the same JSString entering the fallback path multiple times, or when the name is an atom.

I made a first attempt as part of Bug 774006, an this show some improvement on GWT linpack benchmark (from 3.25s to 3.15s on my computer).  Still the implementation is not good enough as this will not work with sub-strings such as the one found in pdfjs (where the properties are dependent strings), but it will fill-up the ICs for nothing.
(Reporter)

Comment 1

4 years ago
Created attachment 753037 [details] [diff] [review]
Add string indexes to IonMonkey SetElementIC.

If this patch still need some work to prevent the addition of strings which are uniq each time, and only keep strings which are reused.  And instead of doing a pointer comparisons, we should reuse the compare String function defined in the Macro assembler under the condition that it does not make any fallible call.

The other option would be to add to compare strings the support for comparing linear strings if none of the strategy work before.
(Reporter)

Comment 2

4 years ago
Created attachment 753047 [details] [diff] [review]
Add string indexes to IonMonkey SetElementIC.

Attach non empty patch.
Attachment #753037 - Attachment is obsolete: true
Attachment #753047 - Attachment is patch: true
Attachment #753047 - Attachment mime type: text/x-patch → text/plain
(Assignee)

Updated

3 years ago
Assignee: general → nobody
You need to log in before you can comment on or make changes to this bug.