Skip to content
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

Accelerate Unsafe CAS Intrinsics on Aarch64 #20432

Merged
merged 2 commits into from
Nov 1, 2024

Conversation

IBMJimmyk
Copy link
Contributor

@IBMJimmyk IBMJimmyk commented Oct 29, 2024

Adds support for the following recognized methods:

CompareAndExchangeObject     //JDK11
CompareAndExchangeReference  //JDK17,21
CompareAndExchangeInt        //JDK11,17,21
CompareAndExchangeLong       //JDK11,17,21

The accelerated CAE code was built on top of the existing accelerated CAS support on Arm. Changes are similar to previously added support on Power, X and Z.

Cleans up isUnsafeCAS to remove the now unused comp parameter. Also cleans up isUnsafeWithObjectArg, isVarHandleAccessMethod and isSignaturePolymorphicMethod to remove unused comp parameters.

Edit:
Needs to be check in with:
eclipse-omr/omr#7505
Due to the changes to the parameters of isUnsafeCAS and isUnsafeWithObjectArg.

Adds support for the following recognized methods:
CompareAndExchangeObject     //JDK11
CompareAndExchangeReference  //JDK17,21
CompareAndExchangeInt        //JDK11,17,21
CompareAndExchangeLong       //JDK11,17,21

The accelerated CAE code was built on top of the existing accelerated
CAS support on Arm. Changes are similar to previously added support on
Power, X and Z.

Cleans up isUnsafeCAS to remove the now unused comp parameter. Also
cleans up isUnsafeWithObjectArg, isVarHandleAccessMethod and
isSignaturePolymorphicMethod to remove unused comp parameters.

Signed-off-by: jimmyk <[email protected]>
@IBMJimmyk
Copy link
Contributor Author

@hzongaro When you get a chance, can you look over the common changes here as well?

@IBMJimmyk
Copy link
Contributor Author

@knn-k I haven't had to submit Arm changes before. Are you the one I need to ask to review Arm changes or is there someone else?

Copy link
Member

@hzongaro hzongaro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the changes in common code look good. Thanks!

Updates comments and remove unneeded 64bit checks for genCAS on
Aarch64.
@knn-k
Copy link
Contributor

knn-k commented Oct 31, 2024

Jenkins test sanity alinux64,amac jdk17 depends eclipse-omr/omr#7505

@knn-k
Copy link
Contributor

knn-k commented Oct 31, 2024

Jenkins test sanity.system amac jdk17 depends eclipse-omr/omr#7505

@knn-k
Copy link
Contributor

knn-k commented Oct 31, 2024

Jenkins compile xlinux,plinux jdk21 depends eclipse-omr/omr#7505

Copy link
Contributor

@knn-k knn-k left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@knn-k knn-k self-assigned this Nov 1, 2024
@knn-k
Copy link
Contributor

knn-k commented Nov 1, 2024

I tried to perform a coordinated merge with eclipse-omr/omr#7505, but the Mirror-OMR-To-OpenJ9-OMR job in the procedure failed unexpectedly.

@pshipton
Copy link
Member

pshipton commented Nov 1, 2024

It's fixed now.

@knn-k
Copy link
Contributor

knn-k commented Nov 1, 2024

Merging now.

@knn-k knn-k merged commit cb25540 into eclipse-openj9:master Nov 1, 2024
12 checks passed
@knn-k knn-k added the depends:omr Pull request is dependent on a corresponding change in OMR label Nov 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch:aarch64 comp:jit depends:omr Pull request is dependent on a corresponding change in OMR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants