-
Notifications
You must be signed in to change notification settings - Fork 397
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 Power and X #7438
Conversation
@hzongaro The @zlwang I need a review on the Power instructions being added. Also, would it be preferred if this PR was split into two? I was working on the Power and X accelerations at the same time and the end result just happened to be 2 fairly disjoint changes to OMR. |
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 think the changes for x/codegen/OMRCodeGenerator.cpp
and compiler/optimizer/RedundantAsyncCheckRemoval.cpp
look correct.
@zlwang did you get a chance to look over these changes? |
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.
LGTM
a7612d2
to
df7fc8c
Compare
Sorry for the late comment. May I ask you to reformat your commit comment so that lines do not exceed 72 characters in length, per https://github.com/eclipse/omr/blob/master/CONTRIBUTING.md#commit-guidelines? |
Jenkins build all |
Adds lbarx, lharx, stbcx_r and sthcx_r instruction support for Power. These instructions are not currently in use but will be needed for future enhancements targetting CAS on byte and short length data. Updates willBeEvaluatedAsCallByCodeGen to reflect the new acceleration of Unsafe compareAndExchange methods on X. Signed-off-by: jimmyk <[email protected]>
df7fc8c
to
8a391f7
Compare
I fixed the commit message. |
Jenkins build all |
@IBMJimmyk, there is a failure in the Linux ppc64le testing:
Is that related to the Binary Encoder test change that is part of this pull request? |
It doesn't seem like it should be. I changed |
It looks like the failure in |
Adds lbarx, lharx, stbcx_r and sthcx_r instruction support for Power. These instructions are not currently in use but will be needed for future enhancements targetting CAS on byte and short length data.
Updates willBeEvaluatedAsCallByCodeGen to reflect the new acceleration of Unsafe compareAndExchange methods on X.
Edit:
X changes are dependent on this OpenJ9 PR:
eclipse-openj9/openj9#19991
Behavior of
inlineCompareAndSwapNative
andinlineCompareAndSwapObjectNative
inJ9TreeEvaluator.cpp
must match behavior inwillBeEvaluatedAsCallByCodeGen
inOMRCodeGenerator.cpp