RFR: 8279822: CI: Constant pool entries in error state are not supported [v2]

Vladimir Ivanov vlivanov at openjdk.java.net
Tue Feb 8 14:55:53 UTC 2022


> Compiler interface doesn't expect to see constant pool entries in error state and crashes when those are encountered.
> 
> JDK-8262377 improved handling of class constants in error state (`JVM_CONSTANT_UnresolvedClassInError`), but there were more cases left unnoticed (`CONSTANT_MethodHandle`, `CONSTANT_MethodType`, and `CONSTANT_Dynamic`). 
> 
> Proposed fix introduces proper support in CI of unresolved constants in error state and improves handling of such cases in C1/C2.
> 
> Also,  for `CONSTANT_MethodHandle` it turned out that some of `LinkageError`s don't transition relevant CP entry into error state (leaving it in unresolved state forever). The fix addresses it.
> 
> Testing: hs-tier1 - hs-tier6

Vladimir Ivanov has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:

 - fatal -> assert
 - Merge branch 'master' into 8279822.cpe_in_error
 - Compiler support of CP entries in error state

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/7314/files
  - new: https://git.openjdk.java.net/jdk/pull/7314/files/b6cc375c..9bdf70ff

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=7314&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=7314&range=00-01

  Stats: 4160 lines in 186 files changed: 3210 ins; 452 del; 498 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7314.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7314/head:pull/7314

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


More information about the hotspot-compiler-dev mailing list