RFR(M): 8222221: [lworld] Valhalla causes performance slowdown for reflective invocations

Roland Westrelin rwestrel at redhat.com
Wed Jul 3 12:08:22 UTC 2019


> On 02.07.19 15:51, Roland Westrelin wrote:
>> Why drop stuff related to Compile::_type_hwm?
>
> Because it's unused code.

Would be nice to do that clean up upstream as well.

>> Why no check for is_not_flat() for the first generate_valueArray_guard
>> below?
> Because we only have a TypeKlassPtr from the array type mirror but no TypeAryPtr for the destination
> type.

Ok.

>> Shouldn't the is_not_flat() test be in
>> generate_valueArray_guard()?
>> 
>> 4042       Node* is_flat = generate_valueArray_guard(klass_node, NULL);
>> 4043       if (!original_t->is_not_flat()) {
>> 4044         generate_valueArray_guard(original_kls, bailout);
>> 4045       }
>
> generate_valueArray_guard takes a klass but the is_not_flat() check needs to be done on TypeAryPtr.

Maybe it would make sense to change the signature of
generate_valueArray_guard() then so all is_not_flat() checks are in one
location rather than duplicated in many places?

Roland.


More information about the valhalla-dev mailing list