-
Notifications
You must be signed in to change notification settings - Fork 5.3k
[release/6.0] Disable folding small-typed returned indirections #82846
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
This ensures we normalize returned indirs of locals, even when we fold it into an access of a promoted local's field. This may change a signed indir into access of an unsigned field, which may need a sign-extending cast to be inserted. It is not ideal that fgMorphRetInd can 'lose' this information, but given that it is a specialized optimization it seems the simplest solution is to just rely on the follow-up normalization. Fix #61359
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue DetailsBackport of #64881 to release/6.0 /cc @jakobbotsch Customer ImpactTestingRiskIMPORTANT: Is this backport for a servicing release? If so and this change touches code that ships in a NuGet package, please make certain that you have added any necessary package authoring and gotten it explicitly reviewed.
|
|
Edit: Replaced with a different fix that disables the optimization in the problematic case. |
|
@jakobbotsch when this PR is ready, please add the Do any of the CI failures look concerning? |
Don't think so, they were all in Mono legs that this shouldn't affect. I had to merge this anyway so let's see the repeated CI run. |
jeffschwMSFT
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.
approved. we will take for consideration in 6.0.x
|
Approved by Tactics via email. |
/cc @jakobbotsch
Customer Impact
The
BitConverter.HalfToInt16Bitsmethod is miscompiled by the JIT in .NET 6. Customer reported and asked for backport in #82680..NET 7 is not impacted -- it was fixed there by #64881.
Testing
Regression test included.
Risk
Low -- targeted fix that disables the incorrect optimization in this specific scenario.