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

Jatin Bhateja jbhateja at openjdk.org
Wed Nov 23 23:49:27 UTC 2022


On Thu, 10 Nov 2022 08:15:23 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

> 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

This pull request has now been integrated.

Changeset: 8159184e
Author:    Jatin Bhateja <jbhateja at openjdk.org>
Committer: Paul Sandoz <psandoz at openjdk.org>
URL:       https://git.openjdk.org/valhalla/commit/8159184e95f67bb5ea4d3754bfcf7ab7a25a9803
Stats:     9870 lines in 53 files changed: 1926 ins; 5601 del; 2343 mod

8296767: Support multi-field based vector classes.

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

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



More information about the valhalla-dev mailing list