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

Ioi Lam iklam at openjdk.org
Mon Feb 9 21:25:06 UTC 2026


On Fri, 6 Feb 2026 12:44:51 GMT, Johan Sjölen <jsjolen at openjdk.org> wrote:

>> src/hotspot/share/cds/aotCompressedPointers.hpp line 169:
>> 
>>> 167: inline u4 to_u4(AOTCompressedPointers::narrowPtr narrowp) {
>>> 168:   return cast_from_narrowPtr<u4>(narrowp);
>>> 169: }
>> 
>> Seems like `cast_to_narrowPtr` could do with a `from_u4` analogue, and the only usage of the cast_to_narrowPtr can actually be replaced with that call. Maybe we don't need those globals, and the `from_` `to_` u4 variants are the only necessary ones?
>
> BTW, you're also saving quite a few keystrokes if you make encode/decode global, but that's up to you.

I moved `cast_from_u4` and `cast_to_u4` to the global scope so they can be used similarly to `checked_cast()`. To me,  `AOTCompressedPointers::cast_to_u4()` feels unnecessarily verbose.

For the encode/decode functions, I think it's better to leave them inside  `AOTCompressedPointers` to provide a better context. Also, that follows the patterns in `CompressedPointers` and `CompressedOops`.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29590#discussion_r2775650583


More information about the serviceability-dev mailing list