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