[lworld+vector] RFR: 8319972: [lworld+vector] Enable intrinsification of Unsafe.finishPrivateBuffer. [v4]

Jatin Bhateja jbhateja at openjdk.org
Wed Nov 22 09:40:38 UTC 2023


On Wed, 22 Nov 2023 09:06:40 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

>> The whole idea is to avoid scalarization for value objects in laval state and not construct InlineTypeNode till we encounter a finishPrivateBuffer. A value object is transitioned into larval state to make it mutable, since Unsafe.put* APIs do not modify the JVM state hence to be safe it's better to keep value objects as oops b/w make and finish private buffer, patch also disables re-materialization of InlineTypeNode from updated memory state in Unsafe.put* inline expanders.
>
> Yes, I understand your intention. And it makes sense to me. My question is whether we can keep the InlineType with a larval state before, and forbiting the scalarization for it between make/finish private buffer. Changing `InlineType` totally to the oop buffer looks too heavy to me.

Generating InlineTypeNode in make_larval will also necessitate re-materialization of such a node in Unsafe.put* expander which is problematic, given that put only modifies the memory state, totally avoiding creation of InlineTypeNode for value objects in larval state will fix this.

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

PR Review Comment: https://git.openjdk.org/valhalla/pull/952#discussion_r1401762189



More information about the valhalla-dev mailing list