-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Optimize and simplify delegate layout #99200
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
Merged
Changes from all commits
Commits
Show all changes
102 commits
Select commit
Hold shift + click to select a range
5b3126e
Make delegates immutable
MichalPetryka 64baa1d
Add a comment
MichalPetryka a489288
Optimize cache checks
MichalPetryka b0b31bd
Merge branch 'main' into immutable-delegates
MichalPetryka bc132e4
Fix x86
MichalPetryka 2dce6a8
Fix R2R
MichalPetryka 00fcd02
Update methodcontext.cpp
MichalPetryka 7941123
Fix contract
MichalPetryka 4de2754
Update src/coreclr/vm/object.cpp
MichalPetryka b9f7f14
Swap fields
MichalPetryka 90c6085
Reorder asserts
MichalPetryka 9509023
Fix contract again
MichalPetryka 557bf4d
GCPROTECT
MichalPetryka 1eab602
Merge branch 'main' into immutable-delegates
MichalPetryka 477a3c5
Merge branch 'main' into immutable-delegates
MichalPetryka fff595a
Merge remote-tracking branch 'upstream/main' into immutable-delegates
MichalPetryka 2c16705
Rework equality checks
MichalPetryka cbe22f7
Merge remote-tracking branch 'upstream/main' into immutable-delegates
MichalPetryka bb2a509
Fix compile errors
MichalPetryka 3bb047b
Add asserts
MichalPetryka b957392
Revert some changes, add more caching
MichalPetryka f3e48e1
Add asserts
MichalPetryka 35e4404
Merge branch 'main' into immutable-delegates
MichalPetryka 8701078
Improve GetHashCode
MichalPetryka e22a731
Merge branch 'main' into immutable-delegates
MichalPetryka 63cba0a
Fix GetHashCode
MichalPetryka 10964cd
Massage codegen
MichalPetryka d593b08
Merge remote-tracking branch 'upstream/main' into immutable-delegates
MichalPetryka 26b6e61
Apply feedback
MichalPetryka 99e37d6
Overload invocationList for DynamicMethods
MichalPetryka d9707d2
Merge remote-tracking branch 'upstream/main' into immutable-delegates
MichalPetryka b4075c4
Remove newline diff
MichalPetryka 405309f
Update comdelegate.h
MichalPetryka 8359913
Merge branch 'main' into immutable-delegates
MichalPetryka a2185be
Merge branch 'main' into immutable-delegates
MichalPetryka 4d12dc9
Merge branch 'main' into immutable-delegates
MichalPetryka 6caeb42
Update src/coreclr/System.Private.CoreLib/src/System/MulticastDelegat…
MichalPetryka 3492e7d
Merge remote-tracking branch 'upstream/main' into immutable-delegates
MichalPetryka 43c2c82
Cleanup
MichalPetryka 179aea1
Merge remote-tracking branch 'upstream/main' into immutable-delegates
MichalPetryka ad5645b
Merge branch 'main' into immutable-delegates
MichalPetryka e0a52e3
Address review
MichalPetryka 80f6ecc
Merge remote-tracking branch 'upstream/main' into immutable-delegates
MichalPetryka 9c7c07d
Remove CWT, cleanup delegate impl
MichalPetryka 29a5ad4
Remove junk
MichalPetryka 96df463
Refactor delegate marker definitions in comdelegate.cpp
MichalPetryka efc644e
Revert renames
MichalPetryka 8a91b95
Fix comments
MichalPetryka 94a9b25
Revert missed field
MichalPetryka f33e751
Optimize invocations
MichalPetryka 20bd567
More cleanup
MichalPetryka 15c9c65
Fix multicast equality
MichalPetryka 561c31b
Merge branch 'main' into immutable-delegates
MichalPetryka c5b3e0b
Merge branch 'main' into immutable-delegates
MichalPetryka 1d4c034
Merge branch 'main' into immutable-delegates
MichalPetryka 45dc5ed
Merge remote-tracking branch 'upstream/main' into immutable-delegates
MichalPetryka 68d5505
Address feedback, cleanup
MichalPetryka 262032f
Cleanup more
MichalPetryka 018bc6a
Follow the same pattern as the other places
MichalPetryka be61178
Fix build
MichalPetryka 9631348
Cleanup native logic
MichalPetryka 5f121f3
Fix build
MichalPetryka 7c103a1
Move methodDesc to invocationCount
MichalPetryka 474c916
Cleanup properties
MichalPetryka 8657011
Merge remote-tracking branch 'upstream/main' into immutable-delegates
MichalPetryka c074ec4
Merge remote-tracking branch 'upstream/main' into immutable-delegates
MichalPetryka 2bafecd
Fixes, cleanup, address feedback
MichalPetryka cab6bf2
Cleanup merge
MichalPetryka 4d731da
Update comment for virtual delegate method id
MichalPetryka d99b961
Update comment for virtual delegate handling
MichalPetryka b2250c7
Review feedback
MichalPetryka cdda579
Cast NULL to PCODE in comdelegate.cpp
MichalPetryka 8104da0
Fix null pointer comparison in jithelpers.cpp
MichalPetryka 3732a37
Fix method descriptor retrieval for delegate object
MichalPetryka 42253f8
Change delegate invocation count retrieval to extra data
MichalPetryka 527853e
Add HelperObject and ExtraData fields to MockDelegateObjectData
MichalPetryka 137e629
Rename invocationCount to extraData in AddDelegateObject
MichalPetryka 721607b
Refactor GetDelegateInfo test method parameters
MichalPetryka d2a4831
Fix bad merge
MichalPetryka c85ad6e
Revert PGO changes
MichalPetryka 58a9d1f
Merge remote-tracking branch 'upstream/main' into immutable-delegates
MichalPetryka 901adc3
Address feedback, centralise unsafe usage
MichalPetryka eceec72
Use object
MichalPetryka c418283
Merge remote-tracking branch 'upstream/main' into immutable-delegates
MichalPetryka 5ed0119
Address review
MichalPetryka f21207b
Fix equivalence handling
MichalPetryka 4a237fe
Fix hash code calculation for delegates with type equivalence
MichalPetryka 6f6d24b
Update src/coreclr/System.Private.CoreLib/src/System/Delegate.CoreCLR.cs
MichalPetryka 3ab6fb4
Rename
MichalPetryka a87c55b
Simplify GetMethodImpl by removing GetMethodImplSlow
MichalPetryka 28de884
Update Delegate.cs
MichalPetryka 9982821
Replace Data.Delegate.UnmanagedMarker with constant
MichalPetryka d771cf4
Update src/coreclr/System.Private.CoreLib/src/System/Delegate.CoreCLR.cs
MichalPetryka 30bdb4c
Seal Equals and GetHashCode methods in Delegate class
MichalPetryka 7994cb8
Refactor UnmanagedMarker declaration position
MichalPetryka d2c2fed
Rename variable fRet to pMD in Delegate_GetMethodDesc
MichalPetryka 9448351
Refactor GetMethodDesc for clarity
MichalPetryka 4914734
Update src/coreclr/vm/comdelegate.cpp
MichalPetryka 8db2814
Rename variable for clarity in Delegate.CoreCLR.cs
MichalPetryka 4ea6a95
Merge remote-tracking branch 'upstream/main' into immutable-delegates
MichalPetryka f8cb0de
Address feedback
MichalPetryka 88a0b0b
Update the kinds table
MichalPetryka 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
Oops, something went wrong.
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.