Uh oh!
There was an error while loading. Please reload this page.
JIT: fix retyping issue in object stack allocation - #123743
Conversation
In cases where we stack allocated an object referred to by local structs, and one of these struct locals was stored to under the value side of a comma, the object allocation phase would inadvertently try and retype the comma, and this retyping ended up cascading back down onto the store and retyping it as well. To fix this, do not run ancestor type propagation for struct stores. Closesdotnet#123718
AndyAyersMS
commented
Jan 29, 2026
PTAL @jakobbotsch |
AndyAyersMS
commented
Jan 29, 2026
The behavior of |
There was a problem hiding this comment.
Pull request overview
Fixes a JIT object stack allocation retyping bug where ancestor type propagation could retype a GT_COMMA and inadvertently cascade the type change down to a struct store, producing illegal IR.
Changes:
- Skips ancestor type propagation when visiting local struct store nodes during
ObjectAllocator::RewriteUses.
Uh oh!
There was an error while loading. Please reload this page.
Tagging subscribers to this area: @JulieLeeMSFT, @dotnet/jit-contrib |
Odd, SPMI passed locally for me. Ah, the failure is in the baseline jit... |
jakobbotsch
commented
Jan 29, 2026
/ba-g Known arm64 queue issues |
In cases where we stack allocated an object referred to by local structs, and one of these struct locals was stored to under the value side of a comma, the object allocation phase would inadvertently try and retype the comma, and this retyping ended up cascading back down onto the store and retyping it as well.
To fix this, do not run ancestor type propagation for struct stores.
Closes#123718