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.