8380476: Implement JEP: Ahead-of-Time Code Compilation#30778
Conversation
|
👋 Welcome back kvn! A progress list of the required criteria for merging this PR into |
|
❗ This change is not yet ready to be integrated. |
|
The total number of required reviews for this PR has been set to 2 based on the presence of this label: |
|
/contributor add @rose00 |
|
@vnkozlov |
|
@vnkozlov |
|
@vnkozlov |
|
@vnkozlov |
|
@vnkozlov |
|
@vnkozlov |
|
@vnkozlov |
|
@vnkozlov |
|
@vnkozlov |
|
Why I did not hit this in our internal testing? |
|
There is also crash on MacOS-x86 with -XX:+UseShenandoahGC during product run. |
|
I can take a look at Shenandoah parts, if you want. We probably just missing a few C1 stubs for it? |
Please do. Look on |
This fixes the sizes assert: I think your testing was done without Shenandoah built? I see there is a |
|
From my local X86 testing with Z GC and additional output update: Which is very near 380 limit. It is possible we generate more intrinsics/stubs on GHA machines. |
|
400 could be still small. I will change it to 500 |
Aha, for C1, we "just" miss relocations for the runtime entry points in barriers. So once we call through the AOT-saved method, the barrier addresses are not relocated and we jump to garbage locations. Apply this: shenandoah-aot-1.patch. There is a failure that looks similar in C2, although I am not sure what's wrong there yet. Digging... |
Merged |
| product(bool, SkipArchiveHeapVerification, false, DIAGNOSTIC, \ | ||
| "Skip verification of CDS archive heap") \ |
There was a problem hiding this comment.
Is this change necessary for AOT code?
There was a problem hiding this comment.
No. I missed to remove it from my patch. I will remove it.
…de load when -Xcomp is used
|
@shipilev please look on GHA failure in |
I know what this is: https://bugs.openjdk.org/browse/JDK-8385557. Amusingly, we tried to take care of this AOT path in LBE code, so to avoid regressions for your PR here. And we apparently did things right with AOT constants for cset-base/region-shift, but missed the relocations for slow calls! Which is a problem if runtime calls relocate (ASLR?). So LBE passed with AOT code cache PR on Linux x86/AArch64 without problems, and only Mac AArch64 caught fire. Argh. I am going to amend this code in mainline. |
|
Adding some logging for the map files: vnkozlov#1 |
8380476: Implement JEP: Ahead-of-Time Code Compilation
Help applications start up and warm up more quickly by shifting dynamic (JIT) method compilation from production runs to training runs, conveying the necessary native code via the AOT cache.
More details in the JEP.
Progress
Issues
Contributors
<[email protected]><[email protected]><[email protected]><[email protected]><[email protected]><[email protected]><[email protected]><[email protected]><[email protected]>Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/30778/head:pull/30778$ git checkout pull/30778Update a local copy of the PR:
$ git checkout pull/30778$ git pull https://git.openjdk.org/jdk.git pull/30778/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 30778View PR using the GUI difftool:
$ git pr show -t 30778Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/30778.diff