-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Fix regression test 46239 with Crossgen2 and improve runtime logging #51416
Closed
Closed
Changes from all commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
1ce126a
Fix regression test 46239 and improve runtime logging
trylek 54389f7
One more fix for explicit layout with zero fields
trylek 1d21a98
Switch over the runtime outerloop pipeline to use Crossgen2
trylek 9e4b351
Remove no longer needed R2RMFLA override of IsBlittableOrManagedSeque…
trylek fc6d7e1
Start transforming the change based on JanK's PR feedback
trylek 84980df
Refactor runtime explicit / sequential behavior per JanK's feedback
trylek ef85fac
Fix Crossgen2 calculation of explicit layout size based on runtime
trylek 783b02f
One more fix for the explicit layout tests
trylek a2fff2b
Put back static modifier on ComputeExplicitFieldLayout per David's PR…
trylek 464c9b1
Simplify sequential layout check per JanK's suggestion
trylek 46b95f0
Make changes internally consistent and address DavidWr's offline feed…
trylek 11cc7df
Additional consistency fixes for x86
trylek 531a460
Fixes for x86 corner cases including a pre-existing blittability bug
trylek c9297dd
Fix pre-existing solution consistency mismatch in Crossgen2.sln
trylek d4da238
Revert change to ClassLoader::CreateTypeHandleForTypeDefThrowing
trylek 3df7a59
Fix architecture-specific tests to cater for x86 Windows vs. Linux
trylek 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 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 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 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 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 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 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 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2269,13 +2269,7 @@ private bool NeedsTypeLayoutCheck(TypeDesc type) | |
|
||
private bool HasLayoutMetadata(TypeDesc type) | ||
{ | ||
if (type.IsValueType && (MarshalUtils.IsBlittableType(type) || ReadyToRunMetadataFieldLayoutAlgorithm.IsManagedSequentialType(type))) | ||
{ | ||
// Sequential layout | ||
return true; | ||
} | ||
|
||
return false; | ||
return type is MetadataType metadataType && (metadataType.IsSequentialLayout || metadataType.IsExplicitLayout); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we also delete/replace |
||
} | ||
|
||
/// <summary> | ||
|
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.
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.
The one place where this method is used looks like dead/unrechable code.
This method can only return true when
type.IsValueType
is true, but this case is handled inEncodeFieldBaseOffset
earlier via theelse if (pMT.IsValueType)
check. It means that this method won't ever return true.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.
Nice cleanup, thanks Jan for pointing that out, deleted in 9th commit.