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

Vladimir Ivanov vlivanov at openjdk.java.net
Wed Aug 18 10:34:31 UTC 2021


On Tue, 17 Aug 2021 17:21:11 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

> JDK-8257211 enabled call devirtualization during post-parse phase. When a virtual call is replaced, there is a receiver null check inserted, but wrong JVM state is picked up (arguments vs locals). (`GraphKit::null_check_receiver_before_call()` should have been used instead).
> 
> Instead of fixing the problematic null check, I decided to completely remove it because it is redundant: all relevant `CallGenerator`s already issue a receiver null check when one is required.   
> 
> Testing: hs-tier1 - hs-tier6

This pull request has now been integrated.

Changeset: e8f1219d
Author:    Vladimir Ivanov <vlivanov at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/e8f1219d6f471c89fe15b19c56e3062dd668466f
Stats:     57 lines in 2 files changed: 50 ins; 7 del; 0 mod

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

Reviewed-by: kvn, thartmann

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

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


More information about the hotspot-compiler-dev mailing list