RFR: 8267846: [lworld] JIT support for the L/Q model (step 1)

Tobias Hartmann thartmann at openjdk.java.net
Mon May 31 06:32:35 UTC 2021

On Fri, 28 May 2021 15:45:36 GMT, Frederic Parain <fparain at openjdk.org> wrote:

>> After https://github.com/openjdk/valhalla/pull/409 and https://github.com/openjdk/valhalla/pull/414 have been integrated, we need to fix the JIT code as well. This mostly means re-applying the old changes from https://github.com/openjdk/valhalla/commit/22dd0da1 and https://github.com/openjdk/valhalla/commit/e895128f and adjust them to the current implementation.
>> All compiler tests now pass except for `TestNullableInlineTypes`, `TestNullableArrays` and `TestIntrinsics` which need reflection support. The corresponding C2 intrinsics are still broken. I'll fix them with [JDK-8267932](https://bugs.openjdk.java.net/browse/JDK-8267932) once reflection support is available.
>> Thanks,
>> Tobias
> src/hotspot/share/c1/c1_Instruction.cpp line 142:
>> 140:     if (type != NULL) {
>> 141:       if (type->is_obj_array_klass() && !type->as_obj_array_klass()->is_elem_null_free()) {
>> 142:         // The runtime type of [LMyValue might be [QMyValue due to [QMyValue <: [LMyValue.
> if type->is_obj_array_klass() is true and type->as_obj_array_klass()->is_elem_null_free() is also true, the method returns false, is it the expected behavior?

Yes, because in that case we have a null-free but non-flattened array. Right?


PR: https://git.openjdk.java.net/valhalla/pull/431

More information about the valhalla-dev mailing list