[lworld+vector] RFR: 8307715: Integrate VectorMask/Shuffle with value/primitive classes [v6]
Xiaohong Gong
xgong at openjdk.org
Thu May 25 03:55:05 UTC 2023
> This patch changes the Vector API java side and hotspot compiler code to make the `VectorMask` and `VectorShuffle` operations work well after integrating with valhalla value/primitive classes.
>
> Java side changes include:
> - Define the concrete `VectorMask/VectorShuffle `classes as value class.
> - Define the payload field type as primitive classes, which defines `MultiField` annotated field to save the element values.
> - Change all the relative API implementations, which use Unsafe APIs to access the new payload.
> - Move several VectorMask default operations to the abstract super class.
> - Minor code cleanup.
>
> Compiler changes include:
> - Enable intrinsification for `VectorMask/VectorShuffle` related operations.
> Mask input/output of `VectorBox/VectorUnbox` is changed to the boolean vector format, to adapt C2's `InlineTypeNode`
> and new `VectorBox` features. Note that the mask input/output is a normal vector or predicate before.
> - Refine `VectorBox` expanding logic to make it right when the primitive payload instance is not flattened.
> - Minor code cleanup.
>
> Basic VectorMask/VectorShuffle jtreg tests pass with"`-XX:+UnlockExperimentalVMOptions -XX:-EnableVectorSupport`",
> and the basic unit tests work well after enabling vector support.
Xiaohong Gong has updated the pull request incrementally with one additional commit since the last revision:
Address review comments
-------------
Changes:
- all: https://git.openjdk.org/valhalla/pull/845/files
- new: https://git.openjdk.org/valhalla/pull/845/files/d34f4020..cc776d06
Webrevs:
- full: https://webrevs.openjdk.org/?repo=valhalla&pr=845&range=05
- incr: https://webrevs.openjdk.org/?repo=valhalla&pr=845&range=04-05
Stats: 18 lines in 3 files changed: 15 ins; 0 del; 3 mod
Patch: https://git.openjdk.org/valhalla/pull/845.diff
Fetch: git fetch https://git.openjdk.org/valhalla.git pull/845/head:pull/845
PR: https://git.openjdk.org/valhalla/pull/845
More information about the valhalla-dev
mailing list