Uh oh!
There was an error while loading. Please reload this page.
JIT: don't clone loops where init or limit is a cast local - #57602
Conversation
The loop cloner assumes all computations it introduces are compatible with TYP_INT, so don't allow cloning when the initial or final value are variables with incompatible types. Fixesdotnet#57535.
ghost
commented
Aug 17, 2021
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsThe loop cloner assumes all computations it introduces are compatible Fixes #57535.
|
AndyAyersMS
commented
Aug 17, 2021
cc @dotnet/jit-contrib @SingleAccretion No SPMI diffs. We will want to port this to .NET 6. |
kunalspathak
left a comment
There was a problem hiding this comment.
LGTM. I am surprised that none of our test had this scenario.
SingleAccretion
left a comment
There was a problem hiding this comment.
Question: do we think this is a cloning-exclusive issue? In relation to not setting the relevant loop flags in the first place (somewhere around optRecordLoop).
I suppose literally nothing but cloning uses this information today so it does not matter either way.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
AndyAyersMS
commented
Aug 17, 2021
Probably best to keep the fix surgical for .NET 6. But we should look and see if anything else might be tripped up. |
Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
AndyAyersMS
commented
Aug 18, 2021
Linux failures seems like some sort of test issue with crossgen2 testing: @trylek seen anything like this recently? |
hoyosjs
commented
Aug 18, 2021
@AndyAyersMS yes, it's been reported in a few cases. Issue: #57620 |
AndyAyersMS
commented
Aug 18, 2021
Mono interpreter failure looks real but is unrelated. Does not seem to be a known issue? cc @BrzVlad |
AndyAyersMS
commented
Aug 18, 2021
/backport to release/6.0 |
Started backporting to release/6.0: https://github.com/dotnet/runtime/actions/runs/1144484614 |
AndyAyersMS
commented
Aug 18, 2021
/backport to release/6.0-rc1 |
Started backporting to release/6.0-rc1: https://github.com/dotnet/runtime/actions/runs/1144633915 |
The loop cloner assumes all computations it introduces are compatible
with TYP_INT, so don't allow cloning when the initial or final value
are variables with incompatible types.
Fixes#57535.