[13] RFR (M): 8223213: Implement fast class initialization checks on x86-64
    Vladimir Ivanov 
    vladimir.x.ivanov at oracle.com
       
    Tue May 28 11:40:31 UTC 2019
    
    
  
Thanks, Martin.
Updated webrev:
   http://cr.openjdk.java.net/~vlivanov/8223213/webrev.02/
> Are these assertions safe?
> +   assert(method()->needs_clinit_barrier(), "barrier not needed");
> +   assert(method()->holder()->is_being_initialized(), "barrier not needed");
> Can it happen that initialization concurrently completes before they are evaluated?
Good point. Even though ciInstanceKlass caches initialization state of 
the corresponding InstanceKlass, it seems there's a possibility that the 
state is updated during the compilation (see 
ciInstanceKlass::update_if_shared). I enhanced the asserts to check that 
initialization has been stated.
> A small suggestion for x86 TemplateTable::invokeinterface:
> It'd be nice to replace load of interface klass by your new load_method_holder.
Agree. Updated.
Best regards,
Vladimir Ivanov
    
    
More information about the hotspot-dev
mailing list