Comment #3 on issue 3591 by [email protected]: method calling is slow
https://code.google.com/p/v8/issues/detail?id=3591

It's not an escape analysis issue.

Case 1. f() is inlined (because call IC gives monomorphic type feedback for a function call)

Case 2. r = F.f is just a field load - so it's LICMed

Case 3. Call is not inlined, even though function load is hoisted (and potentially can even be eliminated via load forwarding). Now, there is no inline at F.f() site because feedback is either not respected or not collected, so the call stays there even though it's a monomorphic call site.

Note that F.f is not a constant function property, but rather a real field.

Compare "performance" of (r = F.f)() to F.f() which is function vs. method call and different way of gathering feedback: http://jsperf.com/pppppqqqqq/2

Can be considered a deficiency of feedback gathering for method calls: it relies on CONSTANT descriptors too much so misses opportunities where call target is constant but it was not promoted to CONSTANT descriptor on the map.

--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to