[foreign-abi] Integrated: 8254260: Consider splitting binding recipe operators that serve a dual role
Jorn Vernee
jvernee at openjdk.java.net
Fri Oct 9 15:08:19 UTC 2020
On Thu, 8 Oct 2020 19:12:48 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:
> Hi,
>
> This patch splits the binding recipe operators that currently serve a dual purpose into 2 operators each:
> - MOVE -> VM_STORE and VM_LOAD
> - DEREFERENCE -> BUFFER_STORE and BUFFER_LOAD
> - CONVERT_ADDRESS -> BOX_ADDRESS and UNBOX_ADDRESS
>
> Note that I also added a TO_SEGMENT operator which converts a MemoryAddress into a MemorySegment. This was previously
> done as part of the COPY operator, but only for upcalls, so I had to split out this functionality so that COPY could
> have only one interpretation as well. This will also enable some more optimizations down the line, such as merely
> wrapping a by-value struct passed as a pointer in a MemorySegment, instead of having to make a copy. This also
> regularized the use of allocators by the operators. Now an allocator is always passed as an argument, and that's what
> is used to do allocations, instead of relying implicitly on MemorySegment::allocateNative. (The index of the allocator
> argument is now also always passed when specializing an operator, to indicate the dependency, and so that operator
> impls don't have to 'guess' which argument index is the allocator (see for instance the implementation of
> Copy::specialize). The rest of the patch is more or less a mechanical renaming, and updating the tests/CallArrangers
> to use the different operator names. Thanks, Jorn
This pull request has now been integrated.
Changeset: eb96bd6a
Author: Jorn Vernee <jvernee at openjdk.org>
URL: https://git.openjdk.java.net/panama-foreign/commit/eb96bd6a
Stats: 938 lines in 13 files changed: 304 ins; 156 del; 478 mod
8254260: Consider splitting binding recipe operators that serve a dual role
Reviewed-by: mcimadamore
-------------
PR: https://git.openjdk.java.net/panama-foreign/pull/375
More information about the panama-dev
mailing list