mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[embedded] Compile-time (literal) KeyPaths for Embedded Swift
Enable KeyPath/AnyKeyPath/PartialKeyPath/WritableKeyPath in Embedded Swift, but for compile-time use only: - Add keypath optimizations into the mandatory optimizations pipeline - Allow keypath optimizations to look through begin_borrow, to make them work even in OSSA. - If a use of a KeyPath doesn't optimize away, diagnose in PerformanceDiagnostics - Make UnsafePointer.pointer(to:) transparent to allow the keypath optimization to happen in the callers of UnsafePointer.pointer(to:).
This commit is contained in:
@@ -17,6 +17,10 @@ extension ApplyInst : OnoneSimplifyable {
|
||||
if tryTransformThickToThinCallee(of: self, context) {
|
||||
return
|
||||
}
|
||||
if context.tryOptimizeKeypath(apply: self) {
|
||||
context.erase(instruction: self)
|
||||
return
|
||||
}
|
||||
_ = context.tryDevirtualize(apply: self, isMandatory: false)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user