Integrated: 8267979: C2: Fix verification code in SubTypeCheckNode::Ideal()
Vladimir Ivanov
vlivanov at openjdk.java.net
Tue Jun 1 09:18:24 UTC 2021
On Mon, 31 May 2021 10:11:13 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:
> Make verification code in `SubTypeCheckNode::Ideal()` robust in presense of concurrent class loading.
>
> It repeatedly calls `Compile::static_subtype_check()` (directly and indirectly from `SubTypeCheckNode::sub()` through `Value()`) which can switch from `Compile::SSC_easy_test` to `Compile::SSC_full_test` as a result of concurrent class loading. As a result, it breaks the invariant being asserted.
>
> The fix tries to catch such case by checking that `Value()` result is stable across ``Compile::static_subtype_check()` call.
>
> The patch is split into 2 commits: extensive refactoring and the actual fix on top of it.
>
> Testing:
> - [x] hs-tier1 - hs-tier6
This pull request has now been integrated.
Changeset: f5634fe3
Author: Vladimir Ivanov <vlivanov at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/f5634fe39db44d5d504e1b2f8aba1bca3e479a89
Stats: 138 lines in 2 files changed: 54 ins; 46 del; 38 mod
8267979: C2: Fix verification code in SubTypeCheckNode::Ideal()
Reviewed-by: neliasso, roland
-------------
PR: https://git.openjdk.java.net/jdk/pull/4271
More information about the hotspot-compiler-dev
mailing list