-
Notifications
You must be signed in to change notification settings - Fork 5.5k
[mono] Implement synch block fast paths in managed #81380
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
Merged
lambdageek
merged 44 commits into
dotnet:main
from
lambdageek:feature-lockword-in-managed
Feb 15, 2023
Merged
Changes from all commits
Commits
Show all changes
44 commits
Select commit
Hold shift + click to select a range
9028f00
[mono] Implement synch block fast paths in managed
lambdageek 10a6c3d
Implement TryEnterFast and TryEnterInflatedFast
lambdageek 4d62281
wip
lambdageek 9ae85c0
Add replacements for test_owner and test_synchronized icalls
lambdageek c3c16cf
use sequential layout for LockWord
lambdageek bca9113
remove managed Inflate (ifdef'd out)
lambdageek cef418a
access sync block through helpers
lambdageek a97a01f
add DumpRef to print out pointer values from ObjectHeader
lambdageek e810d94
Get a pointer to the object header another way
lambdageek c51ff1c
remove DumpRef
lambdageek 2939ac2
XXX temporary return from MonoResolveUnmanagedDll if context is null
lambdageek 6060694
XXX some bug in GetHashCode :-(
lambdageek 93ba644
BUGFIX: logical shifts, not arithmetic
lambdageek a9bd40e
XXX disable hacks
lambdageek 129de86
put back the ALC hack
lambdageek 7496a54
force inlining
lambdageek 5845dac
move fast path into ReliableEnterTimeout
lambdageek 847382b
Don't pass lockTaken to ObjectHolder.TryEnterFast
lambdageek 7a356ab
TryEnterFast: handle flat recursive locking, too
lambdageek 5fc1cdc
whitespace
lambdageek bf088fd
Implement Monitor.Exit fast path in managed
lambdageek 1ac6759
Don't call MonoResolveUnmanagedDll for the default ALC
lambdageek 60ba170
[interp] don't lookup internal calls that were replaced by an opcode
lambdageek 8ecb7ff
Add Interlocked.CompareExchange interp intrinsics for I4 and I8
lambdageek 14cd820
ask EE to inline LockWordCompareExchange
lambdageek 0360524
Use a ref struct to pass around the address of a MonoObject* on the s…
lambdageek bb1e698
Add fast path for Monitor.Exit for inflated monitors with no waiters
lambdageek 6506515
Check for obj == null before ThrowIfNull
lambdageek 91446f9
Inline RuntimeHelpers.GetHashCode
lambdageek 76805ba
inline TryEnterInflatedFast; nano-opts
lambdageek 064eb10
disable the TryGetHashCode fast path helper
lambdageek bbe5cde
Fix last exit from inflated monitor
lambdageek cabd864
avoid repeated calls in TryEnterInflatedFast
lambdageek f8da57d
Combine TryExit and IsEntered into TryExitChecked
lambdageek 2204a82
Re-enable managed GetHashCode in JIT; intrinsify in interp
lambdageek 47f2135
[coop][interp] Fix GC transitions for thunk invoke wrappers
lambdageek fae8a2f
add CMPXCHG opcodes to the jiterpreter
lambdageek 1c0f6ae
Revert "[coop][interp] Fix GC transitions for thunk invoke wrappers"
lambdageek 921cb08
Assert that CEE_MONO_GET_SP is followed by gc safe enter/exit icalls
lambdageek 7a55bf0
[marshal] Add GCUnsafeTransitionBuilder; use for thunk_invoke_wrapper
lambdageek 779b3ff
fix whitespace
lambdageek def185c
Merge remote-tracking branch 'origin/main' into feature-lockword-in-m…
lambdageek 71a9422
more whitespace
lambdageek ee39682
[jiterp] Allow null obj in hashcode intrinsics
lambdageek File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.