[lworld+vector] RFR: 8296767: Support multi-field based vector classes.

Jatin Bhateja jbhateja at openjdk.org
Thu Nov 10 09:03:36 UTC 2022


Initial Java side changes for treating vector as a value class based on suggestions from John Rose[1].

Summary of changes:
1) Re-define existing vector class hierarchy to use generic multi-field[2] based payloads of bit sizes 64, 128, 256 and 512.
2) Concrete vectors are now value classes encapsulating primitive class instances as payload.
3) Update fallback implementation to read/write from multi-field payload using Unsafe APIs.
4) New VM symbol definitions for generic payloads.

All existing JTREG tests are passing with -Xint option.

C2 side change, runtime support for vector object reconstruction, shuffle and masks handling is still based on existing flow
and will be handled in subsequent patch.

MAX species queries target supported max vector size, since multi-field annotation does not accept variable argument hence MAX species based vector class generation has been disabled currently.

[1] http://cr.openjdk.java.net/~jrose/values/multi-field.html
[2] https://github.com/fparain/valhalla/tree/multifield

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

Commit messages:
 - 8296767: Fix white spaces.
 - 8296767: Fix white spaces.
 - 8296767: Support multi-field based vector classes.

Changes: https://git.openjdk.org/valhalla/pull/806/files
 Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=806&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8296767
  Stats: 9870 lines in 53 files changed: 1926 ins; 5601 del; 2343 mod
  Patch: https://git.openjdk.org/valhalla/pull/806.diff
  Fetch: git fetch https://git.openjdk.org/valhalla pull/806/head:pull/806

PR: https://git.openjdk.org/valhalla/pull/806



More information about the valhalla-dev mailing list