RFR: 8368095: [leyden] Fix klass dependency recording [v4]

Aleksey Shipilev shade at openjdk.org
Mon Sep 22 16:22:57 UTC 2025


> See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4.
> 
> I see there are several missing things:
>  1. We need to record dependencies on object klasses as well, not only on plain metadata.
>  2. Since ciObjectFactory is shared, we need to notice objects/metadata even on cache hits.
>  3. It looks like we need to observe dependencies even when `cik->is_initialized()` returns `false` at the moment.
> 
> Additional testing:
>  - [x] Linux x86_64 server fastdebug, `runtime/cds`
>  - [x] Benchmarks

Aleksey Shipilev 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 five additional commits since the last revision:

 - Merge branch 'premain' into JDK-8368095-klass-dep-fix
 - Revert "Retract some unneccesary paths"
   
   This reverts commit cb48aacac9d7915e6fd890398020442aedac7948.
 - Retract some unneccesary paths
 - Revert unnecessary
 - Fix

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

Changes:
  - all: https://git.openjdk.org/leyden/pull/97/files
  - new: https://git.openjdk.org/leyden/pull/97/files/5039f929..e3af03fe

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=leyden&pr=97&range=03
 - incr: https://webrevs.openjdk.org/?repo=leyden&pr=97&range=02-03

  Stats: 284 lines in 5 files changed: 102 ins; 98 del; 84 mod
  Patch: https://git.openjdk.org/leyden/pull/97.diff
  Fetch: git fetch https://git.openjdk.org/leyden.git pull/97/head:pull/97

PR: https://git.openjdk.org/leyden/pull/97


More information about the leyden-dev mailing list