[vectorIntrinsics] RFR: Refactor JVM Interface
Yang Zhang
Yang.Zhang at arm.com
Wed Mar 25 09:32:10 UTC 2020
Hi Vladimir
Except some known failures, the vector api tests pass on AArch64 platform.
Thanks for your improvement.
Regards
Yang
-----Original Message-----
From: panama-dev <panama-dev-bounces at openjdk.java.net> On Behalf Of Vladimir Ivanov
Sent: Wednesday, March 25, 2020 5:07 AM
To: panama-dev <panama-dev at openjdk.java.net>
Subject: [vectorIntrinsics] RFR: Refactor JVM Interface
http://cr.openjdk.java.net/~vlivanov/panama/vector/new_jvm_interface/webrev.00/
(First cleanup pass over the JVM implementation.
The focus is on JVM-JDK interface.)
New JVM interface is minimal and contains intrinsics, well-known classes, and opcode declarations. It resides in java.base
(jdk.internal.vm.vector.VectorSupport) and exports the interface to jdk.incubator.vector module.
JVM doesn't need to know about typed vectors anymore: VectorPayload, VectorMask, and VectorShuffle are enough to represent all interesting cases and provide enough information to the JVM how to handle vector
classes:
- VectorPayload class represents vector values which are amenable to aggressive box elimination transformation
* vector on-heap representation remains primitive array-backed;
* classes which extend VectorPayload should declare 2 static fields (VLENGTH and ETYPE) which describe vector on-heap representation to the JVM (array length and its element type);
- VectorShuffle and VectorMask mark vector shuffles and masks for the JVM;
- VectorSpecies and Vector are there to enhance type checking of JVM intrinsic usages;
Also, additional refactorings/fixes:
* merged reinterpret and cast intrinsics into one (convert)
* refactored rematerialization support
* don't remove unused VectorBoxAllocate nodes, but replace them with
safepoints
* VM vector support is turned off by default, but automatically
enabled when user adds jdk.incubator.vector incubator module to the graph
* multiple minor fixes and cleanups along the way
Testing: jdk/incubator/vector tests
Best regards,
Vladimir Ivanov
More information about the panama-dev
mailing list