8322735: C2: minor improvements of bubble sort used in SuperWord::packset_sort#17190
8322735: C2: minor improvements of bubble sort used in SuperWord::packset_sort#17190D-D-H wants to merge 3 commits intoopenjdk:masterfrom
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. |
|
@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. |
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.
Why you need this local t?
| *(_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.
So we not using i+1 here because all previous values should be < than i's
Right?
There was a problem hiding this comment.
Yes.
The last i's value is > previous values and values between i and end are already sorted.
|
/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
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/17190/head:pull/17190$ git checkout pull/17190Update a local copy of the PR:
$ git checkout pull/17190$ git pull https://git.openjdk.org/jdk.git pull/17190/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 17190View PR using the GUI difftool:
$ git pr show -t 17190Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/17190.diff
Webrev
Link to Webrev Comment