[foreign-abi] RFR: 8254260: Consider splitting binding recipe operators that serve a dual role
Jorn Vernee
jvernee at openjdk.java.net
Thu Oct 8 19:17:30 UTC 2020
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
-------------
Commit messages:
- - Split Move operator into VMStore and VMLoad
Changes: https://git.openjdk.java.net/panama-foreign/pull/375/files
Webrev: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=375&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8254260
Stats: 882 lines in 14 files changed: 261 ins; 152 del; 469 mod
Patch: https://git.openjdk.java.net/panama-foreign/pull/375.diff
Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/375/head:pull/375
PR: https://git.openjdk.java.net/panama-foreign/pull/375
More information about the panama-dev
mailing list