Uh oh!
There was an error while loading. Please reload this page.
Undo struct promotion on "RetInd" code path - #58582
Conversation
ghost
commented
Sep 2, 2021
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
|
kunalspathak
commented
Sep 2, 2021
@dotnet/jit-contrib |
AndyAyersMS
left a comment
There was a problem hiding this comment.
Changes look good. I assume fgMorphRetInd is relatively new?
Is there any way to add checking for cases where we mess up this undo?
kunalspathak
commented
Sep 2, 2021
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. |
Uh oh!
There was an error while loading. Please reload this page.
kunalspathak
commented
Sep 3, 2021
/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