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

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


On Fri, 18 Apr 2025 17:56:53 GMT, Chen Liang <liach at openjdk.org> wrote:

>> 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.
>
> So just `Linker.nativeLinker().downcallHandle(MemorySegment.ofArray(new byte[0]), signature)` suffices?

Yes, that would work, but I was thinking just `Linker.nativeLinker().downcallHandle(signature)`

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

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


More information about the build-dev mailing list