On Tue, 27 Aug 2024 17:27:19 GMT, Coleen Phillimore <cole...@openjdk.org> wrote:
>> This change stores InstanceKlass for interface and abstract classes in the >> non-class metaspace, since class metaspace will have limits on number of >> classes that can be represented when Lilliput changes go in. Classes that >> have no instances created for them don't require compressed class pointers. >> The generated LambdaForm classes are also AllStatic, and changing them to >> abstract moves them to non-class metaspace too. It's not technically great >> to make them abstract and not final but you can't have both. Java classfile >> access flags have no way of specifying something like AllStatic. >> >> Tested with tier1-8. > > Coleen Phillimore has updated the pull request with a new target base due to > a merge or a rebase. The pull request now contains four commits: > > - With JDK-8338929 we don't need is_in_class_space(). > - Merge branch 'master' into anon > - Incorporated a set of Thomas Stuefe's comments. Take out AbstractClass > MetaspaceObj::Type. > - 8338526: Don't store abstract and interface Klasses in class metaspace Looks OK to me. Maybe we should add an assert in `CompressedKlassPointers::encode_not_null()` to check that we never encode abstract and interface classes? src/hotspot/share/oops/metadata.hpp line 2: > 1: /* > 2: * Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights > reserved. No more change in this file? ------------- PR Review: https://git.openjdk.org/jdk/pull/19157#pullrequestreview-2265222694 PR Review Comment: https://git.openjdk.org/jdk/pull/19157#discussion_r1734036194