[lworld] RFR: 8364191: [lworld] Accesses to atomic flat fields prevent scalar replacement [v2]

Quan Anh Mai qamai at openjdk.org
Sat Oct 18 19:31:21 UTC 2025


On Mon, 25 Aug 2025 06:52:40 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:

>> @TobiHartmann Ah dummy mistake, I missed the `NOT_PRODUCT` guard, fixed it now.
>
> Hi @merykitty Sorry for the delay in reviewing this, I was busy with the the [array metadata refactoring](https://github.com/openjdk/valhalla/pull/1452) and hunting down nasty AArch64 crashes ([JDK-8364579](https://bugs.openjdk.org/browse/JDK-8364579) / [JDK-8365996](https://bugs.openjdk.org/browse/JDK-8365996)). This is great work! I see that you converted the PR back to draft, is it still ready to review?

@TobiHartmann Hi Tobias, I am having difficulties understanding how our current flat accesses deal with GC barriers. IIUC, every time an access is made to a memory region that may contain an oop, we need a GC barrier (which itself may be a nop). However, looking at our current implementation, I only see that being handled for G1GC with `StoreLSpecialNode`. For Serial, Parralel, and Shenandoah, the access is made as if the memory is a long, which I assume would not trigger any GC barrier. When I try to add an assertion that a flat access that contains an oop cannot be made for anything other than G1GC, the assert fires.

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

PR Comment: https://git.openjdk.org/valhalla/pull/1518#issuecomment-3368158931


More information about the valhalla-dev mailing list