New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
8254827: JVMCI: Enable it for Windows+AArch64 #685
Conversation
Use r18 as allocatable register on Linux only. A bootstrap works now (it has been crashing before due to r18 being allocated): ```console $ ./windows-aarch64-server-fastdebug/bin/java.exe -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler -XX:+BootstrapJVMCI -version Bootstrapping JVMCI................................. in 17990 ms (compiled 3330 methods) openjdk version "16-internal" 2021-03-16 OpenJDK Runtime Environment (fastdebug build 16-internal+0-adhoc.NORTHAMERICAbeurba.openjdk-jdk) OpenJDK 64-Bit Server VM (fastdebug build 16-internal+0-adhoc.NORTHAMERICAbeurba.openjdk-jdk, mixed mode) ``` Jtreg tests `test/hotspot/jtreg/compiler/jvmci` are passing as well.
👋 Welcome back burban! A progress list of the required criteria for merging this PR into |
Webrevs
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Build changes look good, but you'll need a review on the hotspot part as well.
@lewurm This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 241 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@magicus, @tkrodriguez, @vnkozlov) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
...es/jdk.vm.ci.hotspot.aarch64/src/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig.java
Show resolved
Hide resolved
public static final Register heapBaseRegister = r27; | ||
public static final Register threadRegister = r28; | ||
public static final Register fp = r29; | ||
|
||
private static final RegisterArray reservedRegisters = new RegisterArray(rscratch1, rscratch2, threadRegister, fp, lr, r31, zr, sp); | ||
|
||
private static RegisterArray initAllocatable(Architecture arch, boolean reserveForHeapBase) { | ||
private static RegisterArray initAllocatable(Architecture arch, boolean reserveForHeapBase, boolean linuxOs) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of linuxOs
, canUsePlatformRegister
is a better name. The logic of which OS does what belongs more in AArch64HotSpotJVMCIBackendFactory.
Thank you for your comments @dougxc 🙂 |
/integrate Thanks for the review Tom and Magnus, and for the comments to Vladimir and Doug 🙂 |
/sponsor |
@tkrodriguez @lewurm Since your change was applied there have been 270 commits pushed to the
Your commit was automatically rebased without conflicts. Pushed as commit 88ee973. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Use r18 as allocatable register on Linux only.
A bootstrap works now (it has been crashing before due to r18 being allocated):
Jtreg tests
test/hotspot/jtreg/compiler/jvmci
are passing as well.Progress
Testing
Failed test task
Issue
Reviewers
Download
$ git fetch https://git.openjdk.java.net/jdk pull/685/head:pull/685
$ git checkout pull/685