MVT-based vectors: first stab

forax at univ-mlv.fr forax at univ-mlv.fr
Wed Jul 5 13:55:07 UTC 2017


----- Mail original -----
> De: "Roland Westrelin" <rwestrel at redhat.com>
> À: "Remi Forax" <forax at univ-mlv.fr>
> Cc: "Vladimir Ivanov" <vladimir.x.ivanov at oracle.com>, valhalla-dev at openjdk.java.net
> Envoyé: Mercredi 5 Juillet 2017 15:12:56
> Objet: Re: MVT-based vectors: first stab

> Hi Rémi,
> 
>> why a __Value is not represented by two fields too ?
>>
>> A __Value is a value type with no statically known type so if can not be
>> represented by two fields, it should be represented by 3 fields (2 fields + a
>> pointer to the type).
> 
> Why 2 fields?
> 
> For:
> 
> class SomeValue {
>  double x;
>  double y;
>  double z;
> }
> 
> the JIT uses (x, y, z) as an internal representation of the value.
> 
> Roland.


n + 1 fields ?
(x, y, z) + a field (not necessarily a header but it has the same meaning) that indicate the value klass.
Note that this representation also allow to call interface methods.

My point is that a __Value is not an object so it doesn't has to be represented by a reference (be boxed).

Rémi


More information about the valhalla-dev mailing list