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

razvan.a.lupusoru at intel.com razvan.a.lupusoru at intel.com
Mon Oct 16 21:46:51 UTC 2017


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

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/cpu/x86/vm/assembler_x86.cpp
! src/cpu/x86/vm/assembler_x86.hpp
! src/cpu/x86/vm/macroAssembler_x86.hpp
! src/cpu/x86/vm/x86.ad
! src/share/vm/ci/ciMethod.cpp
! src/share/vm/ci/ciMethod.hpp
! src/share/vm/ci/ciType.cpp
! src/share/vm/ci/ciType.hpp
! src/share/vm/classfile/vmSymbols.hpp
! src/share/vm/opto/c2compiler.cpp
! src/share/vm/opto/classes.hpp
! src/share/vm/opto/doCall.cpp
! src/share/vm/opto/library_call.cpp
! src/share/vm/opto/macro.cpp
! src/share/vm/opto/macro.hpp
! src/share/vm/opto/node.hpp
! src/share/vm/opto/parse2.cpp
! src/share/vm/opto/vectornode.cpp
! src/share/vm/opto/vectornode.hpp
! src/share/vm/runtime/globals.hpp



More information about the panama-dev mailing list