RFR: 8293336: AOT-linking of invokedynamic for lambda expression and string concat [v5]

Ioi Lam iklam at openjdk.org
Tue Oct 22 06:26:27 UTC 2024


On Tue, 15 Oct 2024 15:12:44 GMT, Dan Heidinga <heidinga at openjdk.org> wrote:

>> Ioi Lam has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 29 commits:
>> 
>>  - @DanHeidinga comments -- added ConcurrentHashMap::runtimeSetup() to init NCPU to runtime value; also use the same runtimeSetup() pattern to call registerNatives() for Class.java and Unsafe.java
>>  - Merge branch 'jep-483-step-06-8311071-avoid-soft-refs-in-java-lang-invoke' into jep-483-step-07-8293336-store-lambda-forms-in-cds-archive
>>  - Fixed JDK-8341988: jstack launched with AOT cache created with -XX:+AOTClassLinking crashes
>>  - 8341600: [premain] Automatic aot-init of classes used by java.lang.invoke
>>  - @adinn comments
>>  - improve checks for not changing <clinit> order for aot linking of lambda; added comprehensive test cases: AOTLinkedLambdasApp::testClinitOrder()
>>  - Clean up of aotClassInitializer and cdsHeaVerifier; added lambda test cases for <clinit> order of app classes
>>  - Merge branch 'jep-483-step-06-8311071-avoid-soft-refs-in-java-lang-invoke' into jep-483-step-07-8293336-store-lambda-forms-in-cds-archive
>>  - Require all <clinit> of supertypes of aot-inited classes to be executed in assembly phase
>>  - Limit the use of AOTHolder
>>  - ... and 19 more: https://git.openjdk.org/jdk/compare/e46b910a...382446d4
>
> src/hotspot/share/cds/heapShared.cpp line 457:
> 
>> 455:   if (HeapShared::is_archivable_hidden_klass(ik)) {
>> 456:     // We can't rerun the <clinit> method of hidden classes as we don't save
>> 457:     // the classData, so we must archive its mirror in initialized state.
> 
> Is this comment still accurate?  It looks like we do save the class_data on line 506

This comment is obsolete. Also, we won't come for any class unless it's already initialized. So I deleted the comment and changed the assert to this for all classes


assert(ik->is_initialized(), "must be");

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/21143#discussion_r1810021339


More information about the hotspot-dev mailing list