RFR: 8377307: Refactor code for AOT cache pointer compression [v3]
Johan Sjölen
jsjolen at openjdk.org
Wed Feb 11 10:11:58 UTC 2026
On Wed, 11 Feb 2026 09:24:44 GMT, Ioi Lam <iklam at openjdk.org> wrote:
>> 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
Looks good to me, thank you!
-------------
Marked as reviewed by jsjolen (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/29590#pullrequestreview-3783661070
More information about the serviceability-dev
mailing list