-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Fix OSSA Outliner for scoped guaranteed values #40002
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
…eir new uses in the outlined call
@swift-ci test |
Build failed |
@swift-ci test Linux platform |
@swift-ci test and merge |
@swift-ci clean test linux platform |
Build failed |
@swift-ci clean test linux platform |
@swift-ci test macOS platform |
@swift-ci test windows platform |
Build failed |
@swift-ci test macOS platform |
@swift-ci test windows platform |
While outlining, the new uses of scoped guaranteed values maybe beyond the lifetime ends. For this reason use the new api
makeGuaranteedValueAvailable
which is built on top ofOwnershipLifetimeExtender
to create new guaranteed values that are correctly scoped and use as arg for the outlined call.This ends up creating
copy_value
+borrow_value
that are additional to the non-OSSA outliner. WhenCopyPropagation
with lexical lifetimes are enabled, these additional instructions will be removed to get performance parity with the non-OSSA Outliner.