[jvm-l] Re: Small static method marked not entrant,	inlining reversed?
    John Rose 
    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.)
-- John
    
    
More information about the hotspot-compiler-dev
mailing list