RFR: 8271276: C2: Wrong JVM state used for receiver null check

Vladimir Ivanov vlivanov at openjdk.java.net
Tue Aug 17 21:07:27 UTC 2021


On Tue, 17 Aug 2021 19:15:12 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

> I assume you are talking about this existing null check code for virtual call receiver:
callGenerator.cpp#L242

No, the relevant places are [callGenerator.cpp#L166](https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/callGenerator.cpp#L166), [callGenerator.cpp#L924](https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/callGenerator.cpp#L924), [callGenerator.cpp#L1291](https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/callGenerator.cpp#L1291), and [parse1.cpp#L1130](https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/parse1.cpp#L1130). 

My observation is if there's a fresh `CallGenerator` constructed in `LateInlineVirtualCallGenerator::do_late_inline_check()`, it always handles receiver null check itself.

-------------

PR: https://git.openjdk.java.net/jdk/pull/5150


More information about the hotspot-compiler-dev mailing list