RFR: 8377307: Refactor code for AOT cache pointer compression [v2]
Ioi Lam
iklam at openjdk.org
Mon Feb 9 21:25:05 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 incrementally with two additional commits since the last revision:
- restored assert
- @jdksjolen review comments
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/29590/files
- new: https://git.openjdk.org/jdk/pull/29590/files/3b2e2057..7c4a3a50
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=29590&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=29590&range=00-01
Stats: 86 lines in 9 files changed: 5 ins; 34 del; 47 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