Value Types Optimization Dependencies

Karen Kinnear karen.kinnear at oracle.com
Fri Jun 15 14:43:37 UTC 2018


Trying a photo of the matrix below:
> On Jun 15, 2018, at 10:33 AM, Karen Kinnear <karen.kinnear at oracle.com> wrote:
> 
> 
> Value Types Optimization Dependencies
> 
> Optimizations in the JVM runtime for Value Types depend on three different kinds of characteristics:
> 
> Type Information:
>  - Value Type vs. Identity Type
> All the optimizations below depend on the static type information, specifically
> the key type properties of being identity-less and immutable.
> 
> It is important to ensure Value Type Consistency to enable these optimizations.
> This relies on disallowing value types to ever migrate to become identity types.
> Value-Based-Classes migrating to value types are a corner case which will require
> special handling.
> 
> Non-nullability/flattenability
> Some optimizations additionally require non-nullability which enables flattenability.
> This could be thought of as container properties.
> 
> Runtime dynamic information
> 	Some optimizations additionally require dynamic information such as:
> 	is_flattened  (is flattened in heap containers)
>                (requires flattenable, implementation-dependent)
>            non-null (either non-nullable or dynamically non-null)
> 
> *1: Calling convention optimizations will require additional exploration. 
> Here are some possibilities.
> 
> JIT optimizations have been destabilized with the introduction of the null reference for value types. Current implementation switches back to interpreted mode when a null reference to a value type is detected, it is primordial to have value types optimization re-enabled whenever possible. Considered explorations include:
> null profiling to scalarize only value types that are non-null most of the time
> support for multiple nmethods
> use of a new non-null emotional type/carrier type to provide non-nullability guarantees
> New JIT optimizations might also be required to fully optimize the different kind of value arrays.
> 
> 
> 

> 
> 
> 
>> On Jun 15, 2018, at 10:06 AM, Remi Forax <forax at univ-mlv.fr> wrote:
>> 
>> Hi Karen,
>> the pdf was scrubbed.
>> 
>> Rémi
>> 
>> ----- Mail original -----
>>> De: "Karen Kinnear" <karen.kinnear at oracle.com>
>>> À: "valhalla-dev" <valhalla-dev at openjdk.java.net>
>>> Envoyé: Vendredi 15 Juin 2018 16:00:08
>>> Objet: Re: Value Types Optimization Dependencies
>> 
>>> resend again - Attaching the .pdf - I had cut-and-pasted from preview - sorry
>>> that didn’t translate.
>>> Feedback contents requested.
>>> 
>>> thanks,
>>> Karen
>>> 
>>>> 
>>>> Goal of the exercise is to clarify which optimizations depend on which
>>>> characteristics, in part to
>>>> understand the impact of null on optimizations.
> 




More information about the valhalla-dev mailing list