JIT: more stringent interference checks in forward sub#64933
JIT: more stringent interference checks in forward sub#64933AndyAyersMS merged 3 commits intodotnet:mainfrom
Conversation
Forward sub analysis was missing some cases of call arg interference and so inviting/allowing morph to do unsafe arg reorderings. Fix by considering all kinds of local nodes, not just GT_LCL_VAR, as sources of interference. Closes dotnet#64904.
|
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsForward sub analysis was missing some cases of call arg interference and so Fix by considering all kinds of local nodes, not just GT_LCL_VAR, as sources Closes #64904.
|
|
@jakobbotsch PTAL cc @dotnet/jit-contrib Minimal diffs on x64, more on x86, but on both, an overall improvement in code size. Presumably more evidence that when we let morph reorder call args, it has a hard time choosing a good order. |
jakobbotsch
left a comment
There was a problem hiding this comment.
LGTM. Does this also fix the second test case in #64904?
Yes, but that one throws an unhandled exception, and I was too lazy to convert it into a proper regression test. |
Forward sub analysis was missing some cases of call arg interference and so
inviting/allowing morph to do unsafe arg reorderings.
Fix by considering all kinds of local nodes, not just GT_LCL_VAR, as sources
of interference.
Closes #64904.