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

Vladimir Ivanov vlivanov at openjdk.java.net
Tue Aug 17 17:54:41 UTC 2021


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

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

Commit messages:
 - Whitespaces
 - 8271276: C2: Wrong JVM state used for receiver null check

Changes: https://git.openjdk.java.net/jdk/pull/5150/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5150&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8271276
  Stats: 57 lines in 2 files changed: 50 ins; 7 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5150.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5150/head:pull/5150

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


More information about the hotspot-compiler-dev mailing list