vwithfield and ValueType.findWither

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Thu Jun 15 09:36:11 UTC 2017

On 15/06/17 09:46, John Rose wrote:
> On Jun 14, 2017, at 2:20 PM, Maurizio Cimadamore <maurizio.cimadamore at oracle.com> wrote:
>> Another possible story is that we always create values through the VCC constructor, and then unbox. If we think we're happy with that, that might be a fine choice too.
> That's not a bad story for the JIT with aggressive scalarization,
> and was my first idea about this, but it is painful in the interpreter.
In which ways it's bad for the interpreter? Note that the current 
implementation of the 'modified' findWither will do just that:

* box incoming value
* set field (with Unsafe.putXYZ)
* unbox resulting reference back to a value

So, it seems to me that, to set 5 fields, the above idiom will do 
box/unbox 5 times, while if we just create a VCC with the fields we want 
and then unbox, that's just one unboxing step.

What am I missing?


More information about the valhalla-dev mailing list