hg: valhalla/valhalla/hotspot: Summary:
frederic.parain at oracle.com
frederic.parain at oracle.com
Fri Oct 7 17:59:02 UTC 2016
Changeset: 1e32d9847879
Author: fparain
Date: 2016-10-07 13:54 -0400
URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/1e32d9847879
Summary:
- Introduced ciValueKlass to represent a valueKlass in C2 and provide access to the value type field layout.
- Introduced a new Type TypeValueType and TypeValueTypePtr to represent a value type and a corresponding oop to the heap allocated value type in C2's type system.
- Introduced a ValueTypeNode to represent a value type in the C2 IR. It's a TypeNode with type TypeValueType and has the oop and the field values as input nodes.
- Support for vnew, vreturn, vgetfield, vload, vstore.
- Support for passing value types from interpreter to C2 compiled code and vice versa. This is done via oops.
- Other VT bytecodes are treated as corresponding Java object bytecodes (just for now, so we know where we need to make future changes)
- No support for VT arrays and flattening yet.
- No "real" optimizations.
Contributed-by: tobias.hartmann at oracle.com
! src/share/vm/ci/bcEscapeAnalyzer.cpp
! src/share/vm/ci/ciClassList.hpp
! src/share/vm/ci/ciEnv.cpp
! src/share/vm/ci/ciField.cpp
! src/share/vm/ci/ciMetadata.hpp
! src/share/vm/ci/ciMethod.cpp
! src/share/vm/ci/ciMethodBlocks.cpp
! src/share/vm/ci/ciObjectFactory.cpp
! src/share/vm/ci/ciStreams.cpp
! src/share/vm/ci/ciType.cpp
! src/share/vm/ci/ciType.hpp
! src/share/vm/ci/ciTypeFlow.cpp
! src/share/vm/ci/ciTypeFlow.hpp
+ src/share/vm/ci/ciValueKlass.cpp
+ src/share/vm/ci/ciValueKlass.hpp
! src/share/vm/classfile/systemDictionary.cpp
! src/share/vm/compiler/methodLiveness.cpp
! src/share/vm/interpreter/abstractInterpreter.cpp
! src/share/vm/interpreter/bytecodes.hpp
! src/share/vm/oops/cpCache.hpp
! src/share/vm/oops/methodData.cpp
! src/share/vm/opto/callGenerator.cpp
! src/share/vm/opto/classes.cpp
! src/share/vm/opto/classes.hpp
! src/share/vm/opto/compile.cpp
! src/share/vm/opto/compile.hpp
! src/share/vm/opto/doCall.cpp
! src/share/vm/opto/escape.cpp
! src/share/vm/opto/graphKit.cpp
! src/share/vm/opto/graphKit.hpp
! src/share/vm/opto/macro.cpp
! src/share/vm/opto/node.hpp
! src/share/vm/opto/parse.hpp
! src/share/vm/opto/parse1.cpp
! src/share/vm/opto/parse2.cpp
! src/share/vm/opto/parse3.cpp
! src/share/vm/opto/parseHelper.cpp
! src/share/vm/opto/type.cpp
! src/share/vm/opto/type.hpp
+ src/share/vm/opto/valuetypenode.cpp
+ src/share/vm/opto/valuetypenode.hpp
! src/share/vm/runtime/deoptimization.cpp
! src/share/vm/runtime/signature.cpp
+ test/compiler/valhalla/valuetypes/ValueTypeTestBench.java
More information about the valhalla-dev
mailing list