RFR: 8255493: Support for pre-generated java.lang.invoke classes in CDS dynamic archive [v12]

Yumin Qi minqi at openjdk.java.net
Fri Apr 30 15:25:43 UTC 2021


> Hi, Please review
> 
>   When do dynamic dump, the pre-generated lambda form classes from java.lang.invoke are not stored in dynamic archive. The patch will regenerate the four holder classes, 
>      "java.lang.invoke.Invokers$Holder",
>      "java.lang.invoke.DirectMethodHandle$Holder",
>      "java.lang.invoke.DelegatingMethodHandle$Holder",
>      "java.lang.invoke.LambdaForm$Holder"
>   which will include the versions in static archive and new loaded functions all together and stored in dynamic archive. New test case added.
>   (Minor change to PrintSharedArchiveAtExit, which the index is not consecutive)
> 
>   Tests: tier1,tier2,tier3,tier4
>   
>   Thanks
>   Yumin

Yumin Qi has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 18 additional commits since the last revision:

 - Removed macro for exception handling, removed checking exception after reload class
 - Merge branch 'master' of ssh://github.com/yminqi/jdk into jdk-8255493
 - Changed DynamicArchive::dump as static counterpart. Suppressed exceptions in LambdaFormInvokers::regenerate_holder_classes except for oom
 - Merge branch 'master' into jdk-8255493
 - Merge branch 'master' of ssh://github.com/yminqi/jdk into jdk-8255493
 - Only store four lambda invoker (which will be regenerated in dynamic dump) lines in static archive
 - Removed TRAP from regenerate_holder_classes, also correct SharedLambdaDictionaryPrinter index
 - Merge branch 'master' into jdk-8255493
 - Restore filemap.[ch]pp
 - Remove unnecessary file header including
 - ... and 8 more: https://git.openjdk.java.net/jdk/compare/a5d84a15...95d68855

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/3611/files
  - new: https://git.openjdk.java.net/jdk/pull/3611/files/0846f121..95d68855

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3611&range=11
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=3611&range=10-11

  Stats: 1772 lines in 32 files changed: 1563 ins; 96 del; 113 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3611.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3611/head:pull/3611

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


More information about the hotspot-dev mailing list