-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8351949: RISC-V: Cleanup and enable store-load peephole for membars #24035
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
Conversation
|
👋 Welcome back rehn! A progress list of the required criteria for merging this PR into |
|
@robehn 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 12 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. ➡️ To integrate this PR with the above commit message to the |
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.
Hi, I am trying to understand this. What's the Java source code look like regarding the first table showing the difference in JIT code in PR description?
In naming, can we use names like _rvtso instead of _tso which I think maps better to _rvwmo? I think it's OK as I read this from the RV spec which also mentions RVTSO:
This chapter defines the "Ztso" extension for the RISC-V Total Store Ordering (RVTSO) memory
consistency model. RVTSO is defined as a delta from RVWMO, which is defined in Section 17.1.
Thank you for having a look. Do this help ? The peephole is very powerful on tso, as we only care about store-load. |
Yes, sure. Also please run some jcstress on any machine you have! |
RealFYang
left a comment
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.
Hi, Thanks for the update. I have checked the changes, seems fine to me modulo several minor comments about naming. And I having been running jcstress on two of my OoO machines over the weekend. So far so good. I will let the test continue for some more time to see.
RealFYang
left a comment
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.
Looks good. My local tests are still good.
RealFYang
left a comment
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.
Looks great to me now! Thanks for the updates!
Yet another, thank you! :) |
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.
Looks good!
Thank you! |
Hamlin-Li
left a comment
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.
Thanks for the patience and discussion.
Looks good to me, just some minor comments.
|
Thanks @Hamlin-Li ! |
|
/integrate |
|
Going to push as commit 6d9ece7.
Your commit was automatically rebased without conflicts. |
Hi please consider.
For the specific rvwmo volatile store + store + volatile store is around 30% faster on VF2.
The patch do:
Note that C2-rv64 is now superior to gcc/clang regrading fencing:
https://godbolt.org/z/6E3YTP15j
Testing jcstress, tier1 and manually reading the generated assembly.
Doing additional testing, but RFR it now as it may need some consideration.
/Robbin
Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/24035/head:pull/24035$ git checkout pull/24035Update a local copy of the PR:
$ git checkout pull/24035$ git pull https://git.openjdk.org/jdk.git pull/24035/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 24035View PR using the GUI difftool:
$ git pr show -t 24035Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/24035.diff
Using Webrev
Link to Webrev Comment