[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:

> 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-compiler-dev mailing list