RFR(M): 8206141: [lworld] Improve accessing a flattened value type array passed as Object[]

Roland Westrelin rwestrel at redhat.com
Fri Oct 5 08:49:46 UTC 2018

Hi Tobias,

Thanks for the careful review. Here is a new webrev:


> The code in parse2.cpp:212 is now always null checking the value for Object array stores, right?
> Why do you need the gen_value_type_array_guard in parse2.cpp:241? Couldn't you do the null checking
> in the runtime? This code also emits a redundant check for is_value_array.

Right. I got things mixed up. That should be fixed in the new webrev.
The null check in the runtime call would require deoptimizing from the
runtime call which in turns means stack walking is functional and so
calling the runtime call goes through a stub to setup last sp, right?
Also, going forward, if the value element has no reference fields we
might want to use the clone intrinsic here too which would require the
null check to be inlined in the compiled code anyway.

I took care of other suggestions as well.


More information about the valhalla-dev mailing list