-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[SILOptimizer]: slow OSSA lifetime canonicalization mitigation #82313
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
base: main
Are you sure you want to change the base?
[SILOptimizer]: slow OSSA lifetime canonicalization mitigation #82313
Conversation
@swift-ci please smoke test |
@swift-ci please test compiler performance |
@swift-ci Please smoke test compiler performance |
1 similar comment
@swift-ci Please smoke test compiler performance |
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.
Thank you for taking a stab at this @jamieQ ! I added a few comments.
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
OSSA lifetime canonicalization can take a very long time in certain cases in which there are large basic blocks. to mitigate this, add logic to skip walking the liveness boundary for extending liveness to dead ends when there aren't any dead ends in the function. Updates `DeadEndBlocks` with a new `isEmpty` method and cache to determine if there are any dead-end blocks in a given function.
f675cc7
to
1f3f830
Compare
@swift-ci please smoke test |
@swift-ci Please smoke test compiler performance |
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 great. Thank you, @jamieQ !
When you're ready, @jamieQ, please merge this and cherry-pick it to release/6.2 . |
@nate-chandler happy to get the 6.2 release PR going, but i'll need your (or someone's) help in merging as i do not have commit access. the Linux tests appear to have failed for unrelated reasons, but i'll retry them once more. |
@swift-ci Please smoke test Linux platform |
@swift-ci Please clean smoke test Linux platform |
@swift-ci Please smoke test Linux platform |
OSSA lifetime canonicalization can take a very long time in certain cases in which there are large basic blocks. to mitigate this, add logic to skip walking the liveness boundary for extending liveness to dead ends when there aren't any dead ends in the function.
resolves: #82317