RFR: 8331865: Consolidate size and alignment checks in LayoutPath [v2]
Paul Sandoz
psandoz at openjdk.org
Mon May 20 16:45:02 UTC 2024
On Mon, 20 May 2024 16:31:18 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:
>
> Ah, got it. You mean more support in VarHandleGuards. Yes, I have a separate patch for that (actually had that for quite a while), but we're not super sure how to evaluate what impact it has :-)
Ah, i did not realize that. Yes its tricky, it was designed for VHs to fields/arrays, to really minimize their overhead. With segments there is already some additional overhead e.g.,
if (derefAdapters.length == 0) {
// insert align check for the root layout on the initial MS + offset
List<Class<?>> coordinateTypes = handle.coordinateTypes();
MethodHandle alignCheck = MethodHandles.insertArguments(MH_CHECK_ENCL_LAYOUT, 2, rootLayout());
handle = MethodHandles.collectCoordinates(handle, 0, alignCheck);
int[] reorder = IntStream.concat(IntStream.of(0, 1), IntStream.range(0, coordinateTypes.size())).toArray();
handle = MethodHandles.permuteCoordinates(handle, coordinateTypes, reorder);
}
So perhaps it does not make much difference.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/19251#issuecomment-2120813942
More information about the core-libs-dev
mailing list