Closed
Bug 1349035
Opened 8 years ago
Closed 8 years ago
Extremely bad megamorphic IC behavior on Ember
Categories
(Core :: JavaScript Engine: JIT, defect, P3)
Core
JavaScript Engine: JIT
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: evilpie, Unassigned)
References
(Blocks 1 open bug)
Details
We "attach" 164886 MegamorphicNativeSlot, and "only" 47419 NativeSlot. Attach is in quotes, because basically we seem to be trying to attach the same stub 77870 times at ember.js:1231 and 77855 times at ember.js:1229, this doesn't actually happen because we won't actually attach stubs that are exactly the same. I think we should add some kind of counter to maybeTransition, where even when we could attach a stub we give up after a while when we hit the fallback triggered by Megamorphic VM calls too often.
Overall megamorphic stubs seem to fail a lot more often than I would expect.
Comment 1•8 years ago
|
||
Bug 1348905 should probably improve this.
(In reply to Tom Schuster [:evilpie] from comment #0)
> I think we should add some kind of counter to
> maybeTransition, where even when we could attach a stub we give up after a
> while when we hit the fallback triggered by Megamorphic VM calls too often.
We do transition to Generic when we get too many failures or if we keep seeing "duplicates". The only exception is when it's an Ion SetProp that needs a type barrier - then we count a duplicate stub as attached (because it's possible we added new types and the type barrier will succeed next time). It's not ideal but I'm not sure how to improve this other than setting a "bool failedTypeBarrier" somewhere...
Reporter | ||
Comment 2•8 years ago
|
||
I can't actually reproduce this anymore right now, maybe bug 1348905 already fixed the very bad case here.
Reporter | ||
Comment 4•8 years ago
|
||
Yes let's close this, we have enough other bugs about optimizing megamorphic ICs.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WORKSFORME
You need to log in
before you can comment on or make changes to this bug.
Description
•