-
Notifications
You must be signed in to change notification settings - Fork 10.5k
OSSA support for Box types. AccessedStorage Box handling. isBorrowedAddress utility. #38797
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
@swift-ci test |
@swift-ci test source compatibility |
@swift-ci benchmark |
Performance (x86_64): -O
Code size: -OPerformance (x86_64): -Osize
Code size: -OsizePerformance (x86_64): -Onone
Code size: -swiftlibsHow to read the dataThe tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.If you see any unexpected regressions, you should consider fixing the Noise: Sometimes the performance results (not code size!) contain false Hardware Overview
|
Build failed |
Build failed |
to hasIdenticalStorage. Be precise in preparation for unifying and clarifying the access base model.
InteriorPointer needs to handle all access base kinds that may be borrowed.
…ility It was originally convenient for exclusivity optimization to treat boxes specially. We wanted to know that the 'Box' kind was always uniquely identified. But that's not really important. And now that AccessedStorage is being used more generally, the inconsistency is problematic. A consistent model is also must easier to understand and explain. This also make the implementation of the utility simpler and more powerful. Functional changes: isRCIdentical will look through mark_dependence and mark_uninitialized. findReferenceRoot is used consistently everywhere increasing analysis precision.
Determines whether an address might be inside a borrowed scope. If so, then any address substitution needs to find that scope boundary to avoid violating its basic guarantee that all uses are within scope.
f351cb4
to
a6cb545
Compare
All SCK builds passed (although I don't know how to make them build with -sil-verify-all). |
@swift-ci test |
Thanks @atrick ! lgtm |
These 4 commits are interdependent as far as avoiding test regressions. The two main features are
isBorrowedAddress
, which is required for OSSA-based transformations.Add a tiny BorrowedAddress utility.
MemAccessUtils: unify Box/Class/Tail storage for consistency and usability