Handle more scenarios for loop cloning#67930
Conversation
|
Tagging subscribers to this area: @JulieLeeMSFT Issue Details
|
|
Failures are related to #67878 |
|
@dotnet/jit-contrib , @BruceForstall |
|
You need to worry about increment/decrement overflowing a 32-bit integer and wrapping. E.g.: with your code will clone, but generate an access violation, not System.IndexOutOfRangeException. In the case of Similar applies to down counted loops. |
Thanks for pointing that out. Let me try to fix that. |
f3ca690 to
6320071
Compare
- Increasing loops that are incremented by more than 1 like "i += 2" - Decreasing loops like "i--", "i -= 2"
|
@BruceForstall - I tried measuring some of the benchmarks that showed up in asmdiffs and they all show improvements.
Here is an example asmdiff from |
|
ping. |
6320071 to
32e8320
Compare
BruceForstall
left a comment
There was a problem hiding this comment.
LGTM.
I think you should run a jitstress job before merging.
|
/azp run runtime-coreclr jitstress |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
Improvements on windows/x64: dotnet/perf-autofiling-issues#5072 |

TypeHashingAlgorithm.cs
runtime/src/coreclr/tools/Common/TypeSystem/Common/TypeHashingAlgorithms.cs
Lines 44 to 49 in 7bac4e8
runtime/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/EqualityComparer.cs
Lines 50 to 63 in 7bac4e8
PriorityQueue's Heapify method.
runtime/src/libraries/System.Collections/src/System/Collections/Generic/PriorityQueue.cs
Lines 588 to 591 in 7bac4e8
Contributes to #65342