3 ms·
I have amended the section, please check it out. There is certain technical heritage here. Originally method calls compiled down to a single IC that did load
by mraleph 12y ago
I have amended the section, please check it out.
There is certain technical heritage here.
Originally method calls compiled down to a single IC that did load and call within a IC stub. Type feedback from these ICs was interpreted in the same way as from property load ICs. On the other hand function calls cb(...) compiled down to a call through CallFunctionStub which did not record any feedback whatsoever. At some point CallFunctionStub learned to record a bit of type feedback (monomorphic / megamorphic) and we started using it in Crankshaft for speculative inlining.
Only recently method calls were decomposed into Load IC and a separate Call IC (an evolved CallFunctionStub) which invokes loaded function. For property invocation o.m(...) feedback comes from the Load IC now, and Call IC feedback is ignored. For variable invocation cb(...) feedback comes from the Call IC - which is still only able to distinguish only monomorphic and megamorphic state.
- kannanvijayan 12y agoAh, makes sense. I just read through the updated post (took me a bit to find the updated text), and it does clear up the methodcall polymorphism bit.