-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Undo struct promotion on "RetInd" code path #58582
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
Conversation
|
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsWhen we undo the struct promotion, we revert all the promoted fields except in the code path where we would return the promoted field. We were keeping the promoted field leading to bad codegen. Fixes: #57912
|
|
@dotnet/jit-contrib |
AndyAyersMS
left a comment
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.
Changes look good. I assume fgMorphRetInd is relatively new?
Is there any way to add checking for cases where we mess up this undo?
It was added last year in #37745
I tried looking around and I didn't see a good place to have this check. What I ended up doing is introducing a field By running superpmi replay on coreclr, it hits the newly added assert on exactly same tests. |
src/tests/JIT/Regression/JitBlue/Runtime_57912/Runtime_57912.csproj
Outdated
Show resolved
Hide resolved
|
/backport to release/6.0 |
|
Started backporting to release/6.0: https://github.com/dotnet/runtime/actions/runs/1196839095 |
When we undo the struct promotion, we revert all the promoted fields except in the code path where we would return the promoted field. We were keeping the promoted field leading to bad codegen.
No asmdiff on libraries/benchmarks/coreclr_test.
Since the original repro needed jitstress switch, I verified that this PR fixes the code we geenrate.
Fixes: #57912