-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
8322735: C2: minor improvements of bubble sort used in SuperWord::packset_sort #17190
Conversation
👋 Welcome back ddong! A progress list of the required criteria for merging this PR into |
Webrevs
|
@D-D-H can you explain what this improves? Ah, I think I see now. You want to decrease And a more fundamental question: And do you know why we sort at all in |
Sorry, I don't know the theory or implementation of I just found it when browsing the code. This change is trivial; if you think it's unnecessary, I'm fine with closing it. |
Ok. This change is fine with me. Thanks for taking the time to look into this :) I was just curious what was your motivation. I may completely redo this code once I remove the alignment constraints (here used for sorting), but that will have to be decided in a few months. Please do the renaming, and then I can run testing and give you my approval. |
Updated. Thanks. |
@D-D-H nice. Testing running. |
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.
@D-D-H testing passed. Looks good. Thanks for the change!
@D-D-H 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 212 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 |
@eme64 |
Yes, I think that would be preferrable, even though this is not a very complicated fix. |
Okay. Thanks. |
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.
Clever.
src/hotspot/share/opto/superword.cpp
Outdated
@@ -3526,12 +3526,11 @@ void SuperWord::packset_sort(int n) { | |||
Node_List* t = q_i; |
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.
Why you need this local t
?
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.
Good catch. Deleted.
@@ -3526,12 +3526,11 @@ void SuperWord::packset_sort(int n) { | |||
Node_List* t = q_i; | |||
*(_packset.adr_at(i)) = q_low; | |||
*(_packset.adr_at(i-1)) = q_i; | |||
swapped = true; | |||
max_swap_index = i; |
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.
So we not using i+1
here because all previous values should be < than i
's
Right?
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.
Yes.
The last i
's value is > previous values and values between i
and end are already sorted.
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.
Good.
/integrate Thanks for the review. |
Going to push as commit c5e7245.
Your commit was automatically rebased without conflicts. |
A minor improvement could be made for bubble sort in SuperWord::packset_sort to reduce the comparison count in bad cases.
See https://en.wikipedia.org/wiki/Bubble_sort
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/17190/head:pull/17190
$ git checkout pull/17190
Update a local copy of the PR:
$ git checkout pull/17190
$ git pull https://git.openjdk.org/jdk.git pull/17190/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 17190
View PR using the GUI difftool:
$ git pr show -t 17190
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/17190.diff
Webrev
Link to Webrev Comment