Closed Bug 1357759 Opened 7 years ago Closed 7 years ago

Implement unboxed, typed, proxy and megamorphic stubs for JSOP_IN

Categories

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

enhancement

Tracking

()

RESOLVED FIXED
mozilla58
Tracking Status
firefox58 --- fixed

People

(Reporter: evilpie, Assigned: tcampbell)

References

(Blocks 1 open bug)

Details

Attachments

(3 files)

In bug 1357468 I added support for unboxed objects to the HasOwn. Adding this to |in| would be similar. This shows up on Speedometer and even on sunspider.

Additional with the landing in bug 1344469 I also added a megamorphic stub that now handles unboxed objects.
Blocks: 1337773
No longer blocks: 1337773
Depends on: 1337773
Priority: -- → P3
Assignee: nobody → tcampbell
Status: NEW → ASSIGNED
Summary: Implement unboxed object and megamorphic stubs for the In cache → Implement unboxed, typed, proxy and megamorphic stubs for JSOP_IN
This can probably use more automated testcases.
Comment on attachment 8912474 [details]
Bug 1357759 - Cleanup HasPropIRGenerator unboxed cases

https://reviewboard.mozilla.org/r/183794/#review189854

Beautiful.
Attachment #8912474 - Flags: review?(jdemooij) → review+
Comment on attachment 8912475 [details]
Bug 1357759 - Support proxies ICs for JSOP_IN

https://reviewboard.mozilla.org/r/183796/#review189858

::: js/src/jit/CacheIR.cpp:2600
(Diff revision 1)
>          return false;
>      }
>      RootedObject obj(cx_, &val_.toObject());
>      ObjOperandId objId = writer.guardIsObject(valId);
>  
> -    // Optimize DOM Proxies for JSOP_HASOWN
> +    // Optimize DOM Proxies

Pre-existing nit: remove "DOM" here? The code works for all proxies AFAICS.
Attachment #8912475 - Flags: review?(jdemooij) → review+
Comment on attachment 8912476 [details]
Bug 1357759 - Support megamorphic IC for JSOP_IN

https://reviewboard.mozilla.org/r/183798/#review189862

Nice. It would be good to check we have tests for megamorphic JSOP_IN - evilpie added some for JSOP_HASOWN in jit-test/tests/cacheir/hasown.js

::: js/src/jit/CacheIRCompiler.cpp:2573
(Diff revision 1)
>      masm.setupUnalignedABICall(scratch);
>      masm.loadJSContext(scratch);
>      masm.passABIArg(scratch);
>      masm.passABIArg(obj);
>      masm.passABIArg(idVal.scratchReg());
> -    masm.callWithABI(JS_FUNC_TO_DATA_PTR(void*, HasOwnNativeDataProperty));
> +    if (hasOwn) {

Nit: no {}
Attachment #8912476 - Flags: review?(jdemooij) → review+
Blocks: 1404029
Pushed by tcampbell@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d394ed31deb4
Cleanup HasPropIRGenerator unboxed cases r=jandem
https://hg.mozilla.org/integration/autoland/rev/fdab9ee63195
Support proxies ICs for JSOP_IN r=jandem
https://hg.mozilla.org/integration/autoland/rev/9db13c9ff60e
Support megamorphic IC for JSOP_IN r=jandem
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: