hg: panama/dev: Vector Unbox, masking support, and more for Vector API

henry.jen at oracle.com henry.jen at oracle.com
Tue Dec 19 17:47:06 UTC 2017


Changeset: 391605fa6a75
Author:    Razvan A Lupusoru <razvan.a.lupusoru at intel.com>
Date:      2017-09-29 10:35 -0700
URL:       http://hg.openjdk.java.net/panama/dev/rev/391605fa6a75

Vector Unbox, masking support, and more for Vector API

- Adds support to generate vptest and a node that represents these semantics. This
is used for mask checking methods "anyTrue" and "allTrue".
- Added enum bounds for Vector API methods to improve robustness in checking whether
a method is a Vector API method.
- Fixed several bugs related to wrong class being set for VectorBox. Namely, the
receiver type was always set as the class, but in reality, the return type was correct.
- Added some more support around masks and some casting.
- Added support for Vector unboxing: generation of vector phis and also actually unbox
from Vector object.
- Added flag to turn off unstable_if speculation named "DisableUnstableIfOpt". This is
useful when testing because it reduces chances of getting to runtime from deopt.
- Added disabled support for allocations for VectorBox. This is not yet enabled because
VectorBox nodes are removed but leave behind the allocations which adds overhead.
- For mask support, it was ensured that VectorBox and VectorUnbox also work with it.
- Invariant nodes should be hoistable now.
- Now support int128, int256, int512, float128, float256, float512, and double128,
double256, and double512.

! src/hotspot/cpu/x86/assembler_x86.cpp
! src/hotspot/cpu/x86/assembler_x86.hpp
! src/hotspot/cpu/x86/macroAssembler_x86.hpp
! src/hotspot/cpu/x86/x86.ad
! src/hotspot/share/ci/ciMethod.cpp
! src/hotspot/share/ci/ciMethod.hpp
! src/hotspot/share/ci/ciType.cpp
! src/hotspot/share/ci/ciType.hpp
! src/hotspot/share/classfile/vmSymbols.hpp
! src/hotspot/share/opto/c2compiler.cpp
! src/hotspot/share/opto/classes.hpp
! src/hotspot/share/opto/compile.cpp
! src/hotspot/share/opto/doCall.cpp
! src/hotspot/share/opto/library_call.cpp
! src/hotspot/share/opto/macro.cpp
! src/hotspot/share/opto/macro.hpp
! src/hotspot/share/opto/node.hpp
! src/hotspot/share/opto/parse2.cpp
! src/hotspot/share/opto/phasetype.hpp
! src/hotspot/share/opto/vectornode.cpp
! src/hotspot/share/opto/vectornode.hpp
! src/hotspot/share/runtime/globals.hpp



More information about the panama-dev mailing list