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

Make disable CAS and CAE options consistant #20721

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

IBMJimmyk
Copy link
Contributor

Changes TR_DisableCASInlining envvar to disable inlining Unsafe compareAndSwap on all platforms. This used to only work on X and would also disable inlining compareAndExchange at the same time. Now it only disables inlining compareAndSwap.

Renames TR_DisableCAEIntrinsic envvar to TR_DisableCAEIntrinsic and it disables inlining Unsafe compareAndExchange on all platforms.

Envvars are now checked in fewer locations and set an option bit instead. The following methods were added to support this: getSupportsInlineUnsafeCompareAndSet
setSupportsInlineUnsafeCompareAndSet
getSupportsInlineUnsafeCompareAndExchange
setSupportsInlineUnsafeCompareAndExchange

These methods are used to indicate support for inlining CAS/CAE and also to query for suppport.

@IBMJimmyk
Copy link
Contributor Author

Currently in the middle of testing. So far things look good and problems are not expected.

Changes TR_DisableCASInlining envvar to disable inlining Unsafe
compareAndSwap on all platforms. This used to only work on X and would
also disable inlining compareAndExchange at the same time. Now it only
disables inlining compareAndSwap.

Renames TR_DisableCAEIntrinsic envvar to TR_DisableCAEIntrinsic and it
disables inlining Unsafe compareAndExchange on all platforms.

Envvars are now checked in fewer locations and set an option bit
instead. The following methods were added to support this:
getSupportsInlineUnsafeCompareAndSet
setSupportsInlineUnsafeCompareAndSet
getSupportsInlineUnsafeCompareAndExchange
setSupportsInlineUnsafeCompareAndExchange

These methods are used to indicate support for inlining CAS/CAE and
also to query for suppport.

Signed-off-by: jimmyk <[email protected]>
@IBMJimmyk IBMJimmyk changed the title WIP: Make disable CAS and CAE options consistant Make disable CAS and CAE options consistant Dec 23, 2024
@IBMJimmyk
Copy link
Contributor Author

Everything should be good now. Unfortunately, this changes a little bit on every platform so I'll need a review from a few different people.

@hzongaro Can you look over the Common and X changes?
@zl-wang Can you look over the Power changes?
@r30shah Can you look over the Z changes?
@knn-k Can you look over the Arm changes?

No rush on this change since it is mostly code clean up so getting a review after the holidays is okay.

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.

AArch64 changes look good to me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants