On Fri, 13 Feb 2026 10:10:10 GMT, Paul Hübner <[email protected]> wrote:
>> Hi all, >> >> The main ideas of this patch are to highlight and enforce the invariant we >> enforce when it comes to value objects' identity hash code. >> >> The original JBS issues addresses the following points, which have been >> addressed to various extents: >> >> 1. Adding assertions to the CAS-setting of the hash in the markWord. This is >> vital to enforce the invariant and was added. >> 2. Breaking the loop if the CAS results in a conflict. Putting the identity >> hash in the markWord is an optimization, so one could break out of the loop >> whenever. With the assertion, there's a good confidence that CAS will >> eventually succeed, namely once other threads stop poking at the markWord >> bits. **If there is demand, I can add a fixed upper bound.** >> 3. SSA-ing the hash variable. Done. >> 4. Possibly introducing a markWord::has_hash to improve legibility. I did >> not do this as it would yield multiple `obj->mark()` calls in the fast path >> and the current form is (in my opinion) sufficiently legible. >> >> Testing: tiers 1-3 on Linux (x64, AArch64), macOS (x64, AArch64), Windows >> (x64). > > Paul Hübner has updated the pull request incrementally with one additional > commit since the last revision: > > Reviewer comments. Marked as reviewed by heidinga (no project role). ------------- PR Review: https://git.openjdk.org/valhalla/pull/2029#pullrequestreview-3797264000
