RFR: 8354996: Reduce dynamic code generation for a single downcall

Jorn Vernee jvernee at openjdk.org
Fri Apr 18 17:52:45 UTC 2025


On Thu, 17 Apr 2025 19:44:07 GMT, Chen Liang <liach at openjdk.org> wrote:

> Perf numbers for simple main:
> Linking of `Class::forName0` down from ~152 to ~83
> 
> For calling little color management system https://bugs.openjdk.org/browse/JDK-8313344:
> JNI: ~45
> baseline panama: ~164
> patch: ~103
> 
> Also see #24705.

make/jdk/src/classes/build/tools/classlist/HelloClasslist.java line 190:

> 188:                 JAVA_BOOLEAN, ADDRESS, ADDRESS);
> 189:         Optional<MemorySegment> symbol = lookup.find("Java_java_lang_Class_forName0");
> 190:         var _ = linker.downcallHandle(symbol.orElseThrow(), signature);

FWIW, passing just the signature should result in mostly the same code being generated. The address is just attached using MethodHandles::insertArguments.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24742#discussion_r2050929830


More information about the build-dev mailing list