-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Fix JIT using too wide indirections when returning small structs #68160
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 |
src/tests/JIT/Regression/JitBlue/Runtime_58874/Runtime_58874.cs
Outdated
Show resolved
Hide resolved
| GenTree* retVal = ret->gtGetOp1(); | ||
| GenTree* retVal = ret->gtGetOp1(); | ||
| var_types nativeReturnType = comp->info.compRetNativeType; | ||
| // Note: small types are returned as INT. |
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.
Is that comment still correct with your changes?
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.
should be still relevant, the following genActualType should upscale all small-types to int
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.
Right, there are two nodes here, the return and the operand of the return. The return is still wide but the bug was that we were retyping the operand to a wider type, which is wrong.
|
Failure is dotnet/arcade#9088 |
|
/backport to release/6.0 |
|
Started backporting to release/6.0: https://github.com/dotnet/runtime/actions/runs/2206848351 |
Fix #58874
Fix #64802
Fix #68157
We should backport this given the two customer reports.