-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Fix loop rotate when header has instructions producing ownership results #79476
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
Conversation
Extracted bug fix from #79198 |
@swift-ci test |
@swift-ci test |
@swift-ci test Linux platform |
@swift-ci apple silicon benchmark |
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!
Let's make sure nothing bad happens to the benchmarks before merging.
I don't see any meaningful change here. Note that we are not avoiding LoopRotate in cases where the header has instructions producing ownership results. We are only avoiding hoisting them when they have invariant operands, LoopRotate can still duplicate such instructions provided it doesn't exceed the threshold. Merging to fix issue. |
LoopRotate currently should avoid moving instructions that produce ownership results to the loop header. Such instructions may have uses with the loop that cannot be moved to the loop header causing over consume ownership verifier errors.
rdar://145086395