-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8360520: RISC-V: C1: Fix primitive array clone intrinsic regression after JDK-8333154 #25976
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
base: master
Are you sure you want to change the base?
8360520: RISC-V: C1: Fix primitive array clone intrinsic regression after JDK-8333154 #25976
Conversation
👋 Welcome back fjiang! A progress list of the required criteria for merging this PR into |
@feilongjiang This change is no longer ready for integration - check the PR body for details. |
@feilongjiang 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. |
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.
Seems fine to me. You need another reviewer.
I can't really review it since I'm not familiar with neither riscv, nor the flag nor the COH logic. |
Hi, please consider.
JDK-8333154 Implemented C1 clone intrinsic that reuses arraycopy code for primitive arrays for RISC-V.
The new instruction flag
OmitChecksFlag
(introduced by JDK-8302850) is used to avoid instantiation of array copy stubs for primitive array clones.If
OmitChecksFlag
is set, all flags (including theunaligned
flag) will be cleared before generating theLIR_OpArrayCopy
node.This may lead to incorrect selection of the arraycopy function when
-XX:+UseCompactObjectHeaders
is enabled, causing theunaligned
flag to be set for arraycopy.We observed performance regression on P550 SBC through the corresponding JMH tests when COH is enabled.
This pr keeps the
unaligned
flag on RISC-V to ensure the arraycopy function is selected correctly.The other platforms are not affected as the flag is always
0
whenOmitChecksFlag
is true.Test on linux-riscv64:
JMH data on P550 SBC for reference (w/o and w/ the patch):
Before:
After:
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/25976/head:pull/25976
$ git checkout pull/25976
Update a local copy of the PR:
$ git checkout pull/25976
$ git pull https://git.openjdk.org/jdk.git pull/25976/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 25976
View PR using the GUI difftool:
$ git pr show -t 25976
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/25976.diff
Using Webrev
Link to Webrev Comment