-
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
[mono] Don't use recursion in mono_ssa_rename_vars #61677
[mono] Don't use recursion in mono_ssa_rename_vars #61677
Conversation
Implements dotnet#60266 Avoid deep recursion in mono_ssa_rename_vars, change the way we traverse dominated bb's. Instead of using recursion, use stack like array to store information about stack history and the traversal. The performance remains the same (or is slightly better) than before. Times for the compilation of repro from dotnet#57141 (JIT time minimum from 5 runs): Before: LLVM output file: './Uno.UI.FluentTheme.dll.bc.tmp'. JIT time: 4810 ms, Generation time: 2040 ms, Assembly+Link time: 2 ms. After: LLVM output file: './Uno.UI.FluentTheme.dll.bc.tmp'. JIT time: 4781 ms, Generation time: 2017 ms, Assembly+Link time: 2 ms.
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.
This looks ok to me, it would be nice if someone on the runtime side took look.
/azp run runtime-manual |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-manual |
Azure Pipelines successfully started running 1 pipeline(s). |
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.
Looks fine. I've added some minor stylistic suggestions. And it would be nice if we had a dedicated dynamic array data structure (instead of needing to roll one from scratch, like is done here), but I don't think this PR should be blocked on that.
Co-authored-by: imhameed <imhameed@microsoft.com>
Implements #60266
Avoid deep recursion in
mono_ssa_rename_vars
, change the way we traversedominated bb's. Instead of using recursion, use stack-like array to
store information about stack history and the traversal.
The performance remains the same (or is slightly better) than before.
Times for the compilation of repro from #57141
(JIT time minimum from 5 runs):
Before:
After: