[lworld+vector] RFR: 8307715: Integrate VectorMask/Shuffle with value/primitive classes [v3]
Xiaohong Gong
xgong at openjdk.org
Fri May 19 04:04:14 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:
Use value/primitive classes for VectorShuffle, cleanup and issue fixes
-------------
Changes:
- all: https://git.openjdk.org/valhalla/pull/845/files
- new: https://git.openjdk.org/valhalla/pull/845/files/dadedbe2..2cb15e66
Webrevs:
- full: https://webrevs.openjdk.org/?repo=valhalla&pr=845&range=02
- incr: https://webrevs.openjdk.org/?repo=valhalla&pr=845&range=01-02
Stats: 2335 lines in 48 files changed: 476 ins; 1126 del; 733 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