-
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
8328181: C2: assert(MaxVectorSize >= 32) failed: vector length should be >= 32 #18464
Conversation
👋 Welcome back jbhateja! A progress list of the required criteria for merging this PR into |
@jatin-bhateja 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 182 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 |
@jatin-bhateja The following label will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command. |
/label add hotspot-compiler-dev |
@jatin-bhateja |
Webrevs
|
src/hotspot/cpu/x86/x86.ad
Outdated
if ((size_in_bits != 512) && !VM_Version::supports_avx512vl()) { | ||
return false; |
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.
Please add comment to clarify condition. I am reading it as ClearArray will not be supported for NOT avx512 because we can have vector length 512 bits for not avx512.
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.
This is only pertinent to known sized clear arrays which are optimized for AVX-512 targets, we already have such a check as part of matcher predicate, so removing it.
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.
This looks good. You need second review.
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.
/integrate |
Going to push as commit fbc1e66.
Your commit was automatically rebased without conflicts. |
@jatin-bhateja Pushed as commit fbc1e66. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
This introduced a performance regression, see JDK-8332487. @jatin-bhateja, could you please have a look? Thanks. |
@@ -1750,7 +1750,6 @@ bool Matcher::match_rule_supported_vector(int opcode, int vlen, BasicType bt) { | |||
return false; | |||
} | |||
break; | |||
case Op_ClearArray: |
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.
This seems problematic, and may lead to the regression in https://bugs.openjdk.org/browse/JDK-8332487
On non-AVX512 platforms, this is now always true
instead of always false
. Probably this was not intended, and you thought this way going to be default false
?
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.
I don't understand what you are implying. Are you saying this is not the reason for the regression?
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, this can cause regression since now on non-AVX512 targets compiler may not emit StoreL based instruction sequence and select one of the clear array pattern based on target feature checks, but on the hind side may bloat the JIT code size for know size clear array operations if InitArrayShortSize is set to a larger value.
This bug fix patch tightens the predication check for small constant length clear array pattern and relaxes associated feature checks. Modified few comments for clarity.
Kindly review and approve.
Best Regards,
Jatin
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/18464/head:pull/18464
$ git checkout pull/18464
Update a local copy of the PR:
$ git checkout pull/18464
$ git pull https://git.openjdk.org/jdk.git pull/18464/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 18464
View PR using the GUI difftool:
$ git pr show -t 18464
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/18464.diff
Webrev
Link to Webrev Comment