[jvm-l] Re: Small static method marked not entrant, inlining reversed?
john.r.rose at oracle.com
Wed Sep 8 00:29:45 PDT 2010
On Sep 8, 2010, at 12:20 AM, Charles Oliver Nutter wrote:
> How about at an invokeinterface? It appears to collect type profiles,
> but for only resolving to the immediate types, and not the actual
> method-to-be-invoked or the common superclass of both that actually
> provides the implementation...
That's exactly right. Sounds like CHA (class hierarchy analysis) under interfaces would bail you out, at least until you created too many (>1 or >2) disjoint IRubyObject implementations.
A related problem may be either (a) the type profile doesn't collect general-enough information or (b) we don't have enough type profile points to collect specific-enough information. We can fix (a) by collecting ever fancier profile information or (b) by splitting profile points during inlining in early tiers.
(Or (c) use an explicitly controlled templating mechanism like anonymous classes. That may prematurely multiply bytecodes, though.)
More information about the hotspot-compiler-dev