Uh oh!
There was an error while loading. Please reload this page.
Do not retype small locals in FIELD_LISTs on x86 - #74030
Conversation
ghost
commented
Aug 16, 2022
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsThis is not correct for normalize-on-load register candidates. Fixes #73951.
|
1b6740b to
29c8bb8CompareSingleAccretion
commented
Aug 18, 2022
SPMI failures look pre-existing. @dotnet/jit-contrib |
This breaks the assumption that all LCL_VAR uses of such locals, when typed small, are normalized (and equivalent to each other). Instead, explicitly check for legality of widening the loads in LSRA and codegen.
The load variant in codegen now has double purpose.
29c8bb8 to
1a344ddCompareBruceForstall
commented
Aug 24, 2022
@SingleAccretion When I run the new unit test locally, it passes even without your fix. I'm on 676a6bb Also, I notice when building the test locally I get a warning: I don't see this in the CI build, but maybe they suppress all warnings? |
Hmm, that is very strange. I don't see any nullability warnings locally: Certainly, I would expect our test built to globally disable nullability. And the test does fail without and pass with the fix: There is a detail in the test (the original Fuzzlyn code from which it was adapted also has this property) that to fail it needs to read some random bits from the stack, so perhaps it could be influenced by the environment...? (But it does fail for me consistently, FWIW) |
JulieLeeMSFT
commented
Aug 25, 2022
@BruceForstall please backport this to 7.0 once all tests pass. |
BruceForstall
commented
Sep 2, 2022
I was able to (finally) reproduce the baseline failure and diff code non-failure. |
BruceForstall
commented
Sep 2, 2022
/backport to release/7.0 |
Started backporting to release/7.0: https://github.com/dotnet/runtime/actions/runs/2982283022 |
This is not correct for normalize-on-load register candidates.
Fixes#73951.
Fixes#74562.
A tiny regression on x86, due to using extending moves in more cases.