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

Xiaohong Gong xgong at openjdk.org
Wed May 17 09:07:18 UTC 2023


> This patch changes the Vector API java side and hotspot
> compiler code to make the `VectorMask` operations work well
> after integrating with valhalla value/primitive classes.
> 
> Java side changes include:
>  - Define the concrete VectorMask 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.
> 
> Compiler changes include:
>  - Enable intrinsification for VectorMask 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 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 issue when the boxed type is not equal to the intrinsic return type

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

Changes:
  - all: https://git.openjdk.org/valhalla/pull/845/files
  - new: https://git.openjdk.org/valhalla/pull/845/files/9f90cb77..dadedbe2

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

  Stats: 10 lines in 1 file changed: 2 ins; 0 del; 8 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