JIT: Handle mistyped commas in morph in pre-order too#91587
JIT: Handle mistyped commas in morph in pre-order too#91587jakobbotsch merged 2 commits intodotnet:mainfrom
Conversation
Morph has post-order logic to compensate for mistyped commas produced by impStoreStruct. However, block morphing can optimize unused stores into INDs; this interacts with the mistyped commas to produce illegal IR shapes (e.g. `COMMA<simd12>(..., IND<ubyte>(...))`). The ideal solution is to fix impStoreStruct (dotnet#91586 tracks this), but this change has a more surgical fix for the problem that can be backported to .NET 8. Fix dotnet#91443
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsMorph has post-order logic to compensate for mistyped commas produced by impStoreStruct. However, block morphing can optimize unused stores into INDs; this interacts with the mistyped commas to produce illegal IR shapes (e.g. The ideal solution is to fix impStoreStruct (#91586 tracks this), but this change has a more surgical fix that can be backported to .NET 8. It duplicates the compensation logic to run in pre-order too. Fix #91443
|
|
/azp run runtime-coreclr superpmi-diffs |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/backport to release/8.0 |
|
Started backporting to release/8.0: https://github.com/dotnet/runtime/actions/runs/6107757600 |
Morph has post-order logic to compensate for mistyped commas produced by impStoreStruct. However, block morphing can optimize unused stores into INDs; this interacts with the mistyped commas to produce illegal IR shapes (e.g.
COMMA<simd12>(..., IND<ubyte>(...))).The ideal solution is to fix impStoreStruct (#91586 tracks this), but this change has a more surgical fix that can be backported to .NET 8. It duplicates the compensation logic to run in pre-order too.
Fix #91443