-
Notifications
You must be signed in to change notification settings - Fork 95
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
8328938: C2 SuperWord: disable vectorization for large stride and scale #495
Conversation
👋 Welcome back shade! A progress list of the required criteria for merging this PR into |
@shipilev 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 77 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 |
This backport pull request has now been updated with issue from the original commit. |
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.
@shipilev that looks like the right thing to do, yes!
Thanks for the work :)
There is one new failure: Some backport might be missing. |
What kind of failure are we talking about? How does it manifest? |
Like this:
I think it is from this PR addition of |
Ah, fair enough. Initialization has changed with all my refactorings. But this must be solvable I think. |
But wait. How can |
Actually, more debugging shows that jdk21u-dev/src/hotspot/share/opto/loopnode.cpp Line 2459 in f5c0d78
It might sound like another instance of https://bugs.openjdk.org/browse/JDK-8299975 or some such, hm. There is only one test failing, so it likely depends on some related optimizations happening before we hit this code. |
Hmm, I see. So |
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, thanks for the explanation.
New revision passes the previously failing tests, and is still sensitive to the original regression test. Re-running all testing now... Update: passes all tests. |
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 to me.
|
Thanks! |
/approval request Unclean backport to prevent accidents in C2 loop optimizations. The patch is unclean, because JDK 21u misses major SuperWord refactorings; 21u PR acked by Emanuel and Volker. Passes all aggressive compiler testing. Risk is usual for C2 changes, but on the lower side, as it bails out of optimizations cleanly; minor risk of performance regressions. |
Hi @shipilev, does the backport to 22 require a third version? Or would it be clean, or would the 21 version work for 22? |
Yes, JDK 22 version would be a third variant. Neither JDK 23 nor JDK 21 version works there cleanly. So I would prefer to just leave JDK 22 be. |
Thanks all! /integrate |
Going to push as commit 2b858f5.
Your commit was automatically rebased without conflicts. |
Unclean backport to prevent accidents in C2 loop optimizations. The patch is unclean, because JDK 21u misses major SuperWord refactorings. I applied the hunk by hand in the similar place, and also used
slp->iv_stride()
in one place to get this thing to work.@eme64, if you want to take a look at this?
Additional testing:
all
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk21u-dev.git pull/495/head:pull/495
$ git checkout pull/495
Update a local copy of the PR:
$ git checkout pull/495
$ git pull https://git.openjdk.org/jdk21u-dev.git pull/495/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 495
View PR using the GUI difftool:
$ git pr show -t 495
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk21u-dev/pull/495.diff
Webrev
Link to Webrev Comment