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

Frederic Parain fparain at openjdk.java.net
Fri May 28 15:56:14 UTC 2021

On Fri, 28 May 2021 12:18:11 GMT, Tobias Hartmann <thartmann 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?


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

More information about the valhalla-dev mailing list