RFR: 8334898: Resolve static field/method references at CDS dump time [v3]

Andrew Dinn adinn at openjdk.org
Mon Oct 27 13:42:27 UTC 2025


On Fri, 24 Oct 2025 18:39:19 GMT, Ashutosh Mehra <asmehra at openjdk.org> wrote:

>> This patch pre-resolves constant pool entries referred by getstatic, putstatic and invokestatic bytecodes in the assembly phase.
>> It also extends ResolvedConstants.java test to run in AOT mode workflow and additional test for checking resolution of static CP entries.
>> 
>> Before this PR, stats on pre-resolved CP entries in the assembly phase reported by -Xlog:aot=info:
>> 
>> [2.161s][info ][aot        ] Class  CP entries =  12553, archived =   3707 ( 29.5%), reverted =      0
>> [2.161s][info ][aot        ] Field  CP entries =   5236, archived =   1355 ( 25.9%), reverted =      0
>> [2.161s][info ][aot        ] Method CP entries =   3835, archived =   3818 ( 99.6%), reverted =     17
>> [2.161s][info ][aot        ] Indy   CP entries =      9, archived =      9 (100.0%), reverted =      0
>> 
>> 
>> After this PR:
>> 
>> 2.323s][info ][aot        ] Class  CP entries =  12553, archived =   3700 ( 29.5%), reverted =      0
>> [2.323s][info ][aot        ] Field  CP entries =   5236, archived =   3519 ( 67.2%), reverted =      0
>> [2.323s][info ][aot        ] Method CP entries =  21027, archived =   5527 ( 26.3%), reverted =     17
>> [2.323s][info ][aot        ] Indy   CP entries =    353, archived =      9 (  2.5%), reverted =      0
>
> Ashutosh Mehra has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Move check for VM_Version::supports_fast_class_init_checks() to
>   remove_resolved_method_entries_if_non_deterministic()
>   
>   Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>

src/hotspot/share/oops/cpCache.cpp line 498:

> 496:                   (rme->is_resolved(Bytecodes::_invokestatic) ? " *** static" : ""));
> 497:       }
> 498:       ArchiveBuilder::alloc_stats()->record_method_cp_entry(archived, resolved && !archived);

It certainly looks right to move this outside the test for logging being enabled but does it make any practical difference  i.e.is the statistic used for anything other than this logging category?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27958#discussion_r2465717646


More information about the hotspot-dev mailing list