Re: RFR(M): 8223029: [lworld] C2 support for widening/narrowing conversion "[QFoo;" <: "[LFoo;”

Tobias Hartmann tobias.hartmann at
Mon May 13 13:59:23 UTC 2019

Hi Roland,

thanks for looking at this.

On 13.05.19 15:50, Roland Westrelin wrote:
> I'm confused by the change to Parse::array_load():
> 94       if (elemptr->is_valuetypeptr()) {
> When would that happen?

This happens when we access a [MyValue? array. Similar to accessing an Object array, we cannot
statically determine if the array is flattened and need to emit a runtime check. But at least we
know the exact type and can avoid the runtime call.

I've modified the condition in line 75/76 to handle this:
|| (elemptr->is_valuetypeptr() && elemptr->value_klass()->flatten_array()))


More information about the valhalla-dev mailing list