[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