On Thu, 22 Jan 2026 14:42:44 GMT, Christian Hagedorn <[email protected]> wrote:
>> When using compiler replay with `--enable-preview` with array store/load >> profiling, we only create `ObjArrayKlass` objects instead of subclass >> objects (i.e. `RefArrayKlass` or `FlatArrayKlass`). The reason is that we >> are directly resolving klasses with `SystemDirectory::resolve_or_fail()`: >> https://github.com/openjdk/valhalla/blob/a4fb7ebd5af316d3e99d10bffb44d5be3aab5548/src/hotspot/share/ci/ciReplay.cpp#L557 >> >> This method will call `InstanceKlass::array_klass()` at some point which >> directly creates an `ObjArrayKlass` object. This let's the replayed >> compilation fail when trying to speculate on an value class array which >> expects a subclass of `ObjArrayKlass`. >> >> The fix I propose is to make sure that we are always creating subclass >> objects by explicitly using `ArrayProperties::DEFAULT` when parsing an >> `ArrayKlass` during replay compilation. >> >> I added a compiler replay test which triggers the same assert as shown in >> the report. >> >> Thanks, >> Christian > > Christian Hagedorn has updated the pull request with a new target base due to > a merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains four additional > commits since the last revision: > > - support value class arrays > - Merge branch 'lworld' into JDK-8375548 > - Revert "8375548: [lworld] C2: Compiler replay fails with an assertion due > to not loading object array klasses with ArrayProperties::DEFAULT" > > This reverts commit 0cdb2549427a02c6d77adbbf29ba5ed1d1d38293. > - 8375548: [lworld] C2: Compiler replay fails with an assertion due to not > loading object array klasses with ArrayProperties::DEFAULT Thanks Tobias for your review! ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1931#issuecomment-3790471869
