-
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
JIT: Fix ordering of type initialization and stsfld #80485
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue Detailsnull
|
need to check the code size regressions |
So far all are spills of a value around a type initializer call ( |
The previous comment is incorrect. While the particular static should be fine, the computation and type initializer could be accessing a static from some other type and ordering could matter there. |
Draft Pull Request was automatically closed for 30 days of inactivity. Please let us know if you'd like to reopen it. |
@dotnet/jit-contrib This is the fix from long ago that I held off on because I was looking at the small code size regressions. For x64, they were mostly minopts and were due to splitting a tree as is needed because the type initialization needs to go in the middle of it. arm64 numbers follow the same pattern. |
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.
Always hard to this kind of fix without some code size impact.
Insertion of the type initializer before the tree for a
stsfld
could reorder them inappropriately. This includes those computation in the spill check.Fixes #72354.