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)

defect

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.
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...
I can't actually reproduce this anymore right now, maybe bug 1348905 already fixed the very bad case here.
Should we close this, given comment 2?
Priority: -- → P3
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.