RFR: 8365256: RelocIterator should use indexes instead of pointers

Vladimir Kozlov kvn at openjdk.org
Mon Aug 11 16:19:14 UTC 2025


On Thu, 31 Jul 2025 06:17:24 GMT, Johan Sjölen <jsjolen at openjdk.org> wrote:

> Hi,
> 
> This PR replaces the `current` and `end` pointers with a `base` pointer alongside a `current` index and a `len`. This allows us to have `-1` as the initial value for current, while retaining `nullptr` as the 'dead' value for `_mutable_data`.
> 
> Performance testing shows no difference/performance improvements on DaCapo Linux x64. I don't think that these are actual improvements, but at least there are no clear regressions.
> 
> Testing: GHA

src/hotspot/share/code/relocInfo.hpp line 567:

> 565:   relocInfo*      _base;    // base pointer into relocInfo array
> 566:   int             _current; // current index
> 567:   int             _len;     // length

Yes, this keep the size the same. But you have opportunity to reduce it by moving `_data` before `_databuf` field.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26569#discussion_r2267306514


More information about the hotspot-compiler-dev mailing list