[vectorIntrinsics] RFR: Refactor JVM Interface
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Wed Mar 25 10:22:45 UTC 2020
Thanks, Yang.
Best regards,
Vladimir Ivanov
On 25.03.2020 12:32, Yang Zhang wrote:
> 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