RFR: 8283689: Update the foreign linker VM implementation [v7]
Jorn Vernee
jvernee at openjdk.java.net
Wed May 11 11:02:47 UTC 2022
On Tue, 10 May 2022 19:16:35 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:
>> Jorn Vernee has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 21 commits:
>>
>> - Merge branch 'foreign-preview-m' into JEP-19-VM-IMPL2
>> - Remove unneeded ComputeMoveOrder
>> - Remove comment about native calls in lcm.cpp
>> - 8284072: foreign/StdLibTest.java randomly crashes on MacOS/AArch64
>>
>> Reviewed-by: jvernee, mcimadamore
>> - Update riscv and arm stubs
>> - Remove spurious ProblemList change
>> - Pass pointer to LogStream
>> - Polish
>> - Replace TraceNativeInvokers flag with unified logging
>> - Fix other platforms, take 2
>> - ... and 11 more: https://git.openjdk.java.net/jdk/compare/3c88a2ef...43fd1b91
>
> src/hotspot/share/code/codeBlob.hpp line 754:
>
>> 752: class ProgrammableUpcallHandler;
>> 753:
>> 754: class OptimizedEntryBlob: public RuntimeBlob {
>
> What's the motivation to move `OptimizedEntryBlob` up in the hierarchy (from `BufferBlob` to `RuntimeBlob`)?
Some of it is discussed here: https://github.com/openjdk/panama-foreign/pull/617
Essentially, it is to avoid accidentally inheriting behavior from BufferBlob which we don't want. Also, BufferBlob currently expects a fixed-sized header (`sizeof(BufferBlob)`), while OptimizedEntryBlobs has fields, so we'd have to pass the real header size to the `BufferBlob` constructor, which is a bit messy.
It felt better to just cleanly break away from BufferBlob.
-------------
PR: https://git.openjdk.java.net/jdk/pull/7959
More information about the hotspot-compiler-dev
mailing list