> Hi,
> 
> This PR updates the VM implementation of the foreign linker, by bringing over 
> commits from the panama-foreign repo.
> 
> This is split off from the main JEP integration for 19, since we have limited 
> resources to handle this. As such, this PR might fall over to 20.
> 
> I've written up an overview of the Linker architecture here: 
> http://cr.openjdk.java.net/~jvernee/docs/FL_Overview.html it might be useful 
> to read that first.
> 
> This patch moves from the "legacy" implementation, to what is currently 
> implemented in the panama-foreign repo, except for replacing the use of 
> method handle combinators with ASM. That will come in a later path. To recap. 
> This PR contains the following changes:
> 
> 1. VM stubs for downcalls are now generated up front, instead of lazily by C2 
> [1].
> 2. the VM support for upcalls/downcalls now support all possible call shapes. 
> And VM stubs and Java code implementing the buffered invocation strategy has 
> been removed  [2], [3], [4], [5].
> 3. The existing C2 intrinsification support for the `linkToNative` method 
> handle linker was no longer needed and has been removed [6] (support might be 
> re-added in another form later).
> 4. Some other cleanups, such as: OptimizedEntryBlob (for upcalls) now 
> implements RuntimeBlob directly. Binding to java classes has been rewritten 
> to use javaClasses.h/cpp (this wasn't previously possible due to these java 
> classes being in an incubator module) [7], [8], [9].
> 
> While the patch mostly consists of VM changes, there are also some Java 
> changes to support (2).
> 
> The original commit structure has been mostly retained, so it might be useful 
> to look at a specific commit, or the corresponding patch in the 
> [panama-foreign](https://github.com/openjdk/panama-foreign/pulls?q=is%3Apr) 
> repo as well. I've also left some inline comments to explain some of the 
> changes, which will hopefully make reviewing easier.
> 
> Testing: Tier1-4
> 
> Thanks,
> Jorn
> 
> [1]: 
> https://github.com/openjdk/jdk/pull/7959/commits/048b88156814579dca1f70742061ad24942fd358
> [2]: 
> https://github.com/openjdk/jdk/pull/7959/commits/2fbbef472b4c2b4fee5ede2f18cd81ab61e88f49
> [3]: 
> https://github.com/openjdk/jdk/pull/7959/commits/8a957a4ed9cc8d1f708ea8777212eb51ab403dc3
> [4]: 
> https://github.com/openjdk/jdk/pull/7959/commits/35ba1d964f1de4a77345dc58debe0565db4b0ff3
> [5]: 
> https://github.com/openjdk/jdk/pull/7959/commits/4e72aae22920300c5ffa16fed805b62ed9092120
> [6]: 
> https://github.com/openjdk/jdk/pull/7959/commits/08e22e1b468c5c8f0cfd7135c72849944068aa7a
> [7]: 
> https://github.com/openjdk/jdk/pull/7959/commits/451cd9edf54016c182dab21a8b26bd8b609fc062
> [8]: 
> https://github.com/openjdk/jdk/pull/7959/commits/4c851d2795afafec3a3ab17f4142ee098692068f
> [9]: 
> https://github.com/openjdk/jdk/pull/7959/commits/d025377799424f31512dca2ffe95491cd5ae22f9

Jorn Vernee has updated the pull request with a new target base due to a merge 
or a rebase. The pull request now contains 90 commits:

 - Merge branch 'foreign-preview-m' into JEP-19-VM-IMPL2
 - Merge branch 'master' into JEP-19-VM-IMPL2
 - 8284161: Implementation of Virtual Threads (Preview)
   
   Co-authored-by: Ron Pressler <rpress...@openjdk.org>
   Co-authored-by: Alan Bateman <al...@openjdk.org>
   Co-authored-by: Erik Österlund <eosterl...@openjdk.org>
   Co-authored-by: Andrew Haley <a...@openjdk.org>
   Co-authored-by: Rickard Bäckman <rback...@openjdk.org>
   Co-authored-by: Markus Grönlund <mgron...@openjdk.org>
   Co-authored-by: Leonid Mesnik <lmes...@openjdk.org>
   Co-authored-by: Serguei Spitsyn <sspit...@openjdk.org>
   Co-authored-by: Chris Plummer <cjplum...@openjdk.org>
   Co-authored-by: Coleen Phillimore <cole...@openjdk.org>
   Co-authored-by: Robbin Ehn <r...@openjdk.org>
   Co-authored-by: Stefan Karlsson <stef...@openjdk.org>
   Co-authored-by: Thomas Schatzl <tscha...@openjdk.org>
   Co-authored-by: Sergey Kuksenko <skukse...@openjdk.org>
   Reviewed-by: lancea, eosterlund, rehn, sspitsyn, stefank, tschatzl, dfuchs, 
lmesnik, dcubed, kevinw, amenkov, dlong, mchung, psandoz, bpb, coleenp, smarks, 
egahlin, mseledtsov, coffeys, darcy
 - 8282218: C1: Missing side effects of dynamic class loading during constant 
linkage
   
   Reviewed-by: thartmann, kvn
 - 8286342: ProblemList compiler/c2/irTests/TestEnumFinalFold.java
   
   Reviewed-by: mikael
 - 8286263: compiler/c1/TestPinnedIntrinsics.java failed with 
"RuntimeException: testCurrentTimeMillis failed with -3"
   
   Reviewed-by: thartmann, kvn
 - 8285295: Need better testing for IdentityHashMap
   
   Reviewed-by: jpai, lancea
 - 8286190: Add test to verify constant folding for Enum fields
   
   Reviewed-by: kvn, thartmann
 - 8286154: Fix 3rd party notices in test files
   
   Reviewed-by: darcy, joehw, iris
 - 8286291: G1: Remove unused segment allocator printouts
   
   Reviewed-by: ayang, iwalulya
 - ... and 80 more: https://git.openjdk.java.net/jdk/compare/f823bf84...5cef96f7

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

Changes: https://git.openjdk.java.net/jdk/pull/7959/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7959&range=03
  Stats: 117182 lines in 1482 files changed: 100895 ins; 8432 del; 7855 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7959.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7959/head:pull/7959

PR: https://git.openjdk.java.net/jdk/pull/7959

Reply via email to