RFR: 8267947: CI: Preserve consistency between has_subklass() and is_subclass_of()
Roland Westrelin
roland at openjdk.java.net
Tue Jun 1 07:24:18 UTC 2021
On Mon, 31 May 2021 08:54:03 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:
> CI caches `Klass::subklass() != NULL` query, but concurrent class loading can
> invalidate the cached value. Though recorded dependency won't let the nmethod
> to be installed, the inconcistency can manifest as type paradoxes until
> compilation is finished.
>
> The fix caches only `true` value (since it can't change unless class unloading
> takes place) and queries the VM otherwise.
>
> Testing:
> - [x] hs-tier1 - hs-tier6
src/hotspot/share/ci/ciKlass.cpp line 82:
> 80:
> 81: #ifdef ASSERT
> 82: if (that->is_instance_klass() && !that->is_interface()) {
Why the !that->is_interface() test?
-------------
PR: https://git.openjdk.java.net/jdk/pull/4269
More information about the hotspot-compiler-dev
mailing list