[vectorIntrinsics] RFR: Load store memory segment
Paul Sandoz
psandoz at openjdk.java.net
Tue Mar 29 21:52:38 UTC 2022
This is the initial implementation for loading/storing vectors from/to memory segments.
Some of the changes are related to `int` -> `long` for the offset. I had to change the load/store intrinsic signatures to accept an offset as a `long`. This does not affect the C2 implementation, only the fallback lambdas. So in some cases there is a downcast to `int`, which is safe because the original input was an `int` e.g. the offset for primitive array access.
Some changes related to module dependency and memory segment proxies will go away when the Memory Segment API is integrated into `java.base` as a preview API.
There is still more work to do but i wanted to get this in now and iterate:
- I will remove the `byte[]` and `ByteBuffer` accepting load/store methods in a following PR.
- some additional negative tests are required, specifically if a scope of segment is not alive, or the segment covers a heap array other than `byte[]`.
-------------
Commit messages:
- Merge branch 'vectorIntrinsics' into load-store-memory-segment
- Typo
- Native or heap with byte[] segment
- UOE for read-only segment.
- Throw USO for read-only segment.
- Remove downcasts.
- Load/store intrinsics accept long offset/index.
- Doc update and layout alignment.
- Merge branch 'vectorIntrinsics' into load-store-memory-segment
- Update doc and method signatures.
- ... and 1 more: https://git.openjdk.java.net/panama-vector/compare/a1fd3fe9...00439ff5
Changes: https://git.openjdk.java.net/panama-vector/pull/187/files
Webrev: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=187&range=00
Stats: 11656 lines in 80 files changed: 11483 ins; 0 del; 173 mod
Patch: https://git.openjdk.java.net/panama-vector/pull/187.diff
Fetch: git fetch https://git.openjdk.java.net/panama-vector pull/187/head:pull/187
PR: https://git.openjdk.java.net/panama-vector/pull/187
More information about the panama-dev
mailing list