-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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