RFR: 8377307: Refactor code for AOT cache pointer compression [v3]

Ioi Lam iklam at openjdk.org
Wed Feb 11 10:11:56 UTC 2026


> AOT cache uses pointer compression to store 64-bit pointers in 32 bits. Currently the compression algorithm is simply (base + narrowPtr). However, in [JDK-8376125](https://bugs.openjdk.org/browse/JDK-8376125), we may change it to (base + narrowPtr << 3).
> 
> This RFE changed the encoded pointer from an u4 to (thanks to @jdksjolen for the idea):
> 
> 
> enum class narrowPtr : u4;
> 
> 
> This allows better tracking of where the encoded pointers are stored. Also, we can distinguish between byte offsets vs encoded pointers -- they currently have the same numerical values but after [JDK-8376125](https://bugs.openjdk.org/browse/JDK-8376125), they will be different.
> 
> Also minor clean up in ArchiveBuilder to change some `uintx` to `size_t`, which is used by `pointer_delta()`.

Ioi Lam has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 13 commits:

 - Merge branch 'master' into 8377307-refactor-aot-compressed-pointers
 - restored assert
 - @jdksjolen review comments
 - more clean up
 - updated filemap to use narrowPtr
 - clean up
 - Use: enum class narrowPtr : u4;
 - step6
 - step5
 - step4
 - ... and 3 more: https://git.openjdk.org/jdk/compare/a87da517...bdb2029d

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

Changes: https://git.openjdk.org/jdk/pull/29590/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=29590&range=02
  Stats: 440 lines in 26 files changed: 205 ins; 96 del; 139 mod
  Patch: https://git.openjdk.org/jdk/pull/29590.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29590/head:pull/29590

PR: https://git.openjdk.org/jdk/pull/29590


More information about the serviceability-dev mailing list