RFR: 8303279: C2: crash in SubTypeCheckNode::sub() at IGVN split if
Volker Simonis
simonis at openjdk.org
Wed Jun 28 13:08:03 UTC 2023
On Tue, 27 Jun 2023 14:40:49 GMT, Roland Westrelin <roland at openjdk.org> wrote:
> The crash occurs because at split if during IGVN, a `SubTypeCheck` is
> created with null as input. That happens because the control path the
> `SubTypeCheck` is cloned for is dead. To fix that I propose delaying
> split if until dead paths are collapsed.
>
> I added an assert to check a nullable first input to `SubTypeCheck`
> nodes (which should be impossible because it should be null
> checked). When I ran testing, a number of cases showed up with known
> non null values non properly marked as non null. I fixed them.
src/hotspot/share/opto/library_call.hpp line 183:
> 181: return generate_method_call(method_id, false, true, res_not_null);
> 182: }
> 183: CallJavaNode* generate_method_call_virtual(vmIntrinsics::ID method_id) {
`generate_method_call_virtual()` doesn't seem to be used anywhere in the code base so maybe we can drop it instead of updating it?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14678#discussion_r1245179117
More information about the hotspot-compiler-dev
mailing list