[lworld+vector] RFR: 8307715: Integrate VectorMask/Shuffle with value/primitive classes [v5]

Xiaohong Gong xgong at openjdk.org
Fri May 19 10:46:27 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:

  Fix jtreg failures

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

Changes:
  - all: https://git.openjdk.org/valhalla/pull/845/files
  - new: https://git.openjdk.org/valhalla/pull/845/files/ca70c356..d34f4020

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=valhalla&pr=845&range=04
 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=845&range=03-04

  Stats: 34 lines in 3 files changed: 15 ins; 2 del; 17 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