Skip to content

Commit 58f670d

Browse files
committed
Update OwnershipLiveness comments for code review.
1 parent ff95e7e commit 58f670d

File tree

2 files changed

+17
-18
lines changed

2 files changed

+17
-18
lines changed

SwiftCompilerSources/Sources/Optimizer/Utilities/BorrowUtils.swift

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
// of which dominates the value and introduces a borrow scope that
4545
// encloses all forwarded uses of the guaranteed value.
4646
//
47-
// %1 = begin_borrow %0 // borrow introducer for %3
47+
// %1 = begin_borrow %0 // borrow introducer for %2
4848
// %2 = begin_borrow %1 // borrow introducer for %3
4949
// %3 = struct (%1, %2) // forwards two guaranteed values
5050
// ... all forwarded uses of %3
@@ -88,7 +88,7 @@
8888
// %6 = begin_borrow %0 %6 %0
8989
// %7 = struct (%6) %6 %6
9090
// br bb3(%6, %7)
91-
// bb3(%reborrow: @guaranteed, %reborrow %0
91+
// bb3(%reborrow: @reborrow, %reborrow %0
9292
// %phi: @guaranteed): %phi %reborrow
9393
//
9494
// `%reborrow` is an outer-adjacent phi to `%phi` because it encloses
@@ -104,14 +104,14 @@
104104
// cond_br ..., bb1, bb2
105105
// bb1:
106106
// %1 = owned value
107-
// %2 = begin_borrow %0 %2 %1
107+
// %2 = begin_borrow %1 %2 %1
108108
// br bb3(%1, %2)
109109
// bb2:
110110
// %5 = owned value
111111
// %6 = begin_borrow %5 %6 %5
112112
// br bb3(%5, %6)
113-
// bb3(%phi: @owned, invalid %0
114-
// %reborrow: @guaranteed): %reborrow %phi
113+
// bb3(%phi: @owned, invalid none
114+
// %reborrow: @reborrow): %reborrow %phi
115115
//
116116
// In OSSA, each owned value defines a separate lifetime. It is
117117
// consumed on all paths by a direct use. Owned lifetimes can,
@@ -201,9 +201,8 @@ enum BorrowingInstruction : CustomStringConvertible, Hashable {
201201
switch self {
202202
case .beginBorrow, .storeBorrow:
203203
let svi = instruction as! SingleValueInstruction
204-
return svi.uses.walk {
205-
if $0.instruction is EndBorrowInst { return visitor($0) }
206-
return .continueWalk
204+
return svi.uses.filterUsers(ofType: EndBorrowInst.self).walk {
205+
visitor($0)
207206
}
208207
case .beginApply(let bai):
209208
return bai.token.uses.walk { return visitor($0) }
@@ -494,10 +493,10 @@ private struct BorrowIntroducers {
494493
//
495494
// Example:
496495
//
497-
// bb1(%reborrow_1 : @guaranteed)
496+
// bb1(%reborrow_1 : @reborrow)
498497
// %field = struct_extract %reborrow_1
499498
// br bb2(%reborrow_1, %field)
500-
// bb2(%reborrow_2 : @guaranteed, %forward_2 : @guaranteed)
499+
// bb2(%reborrow_2 : @reborrow, %forward_2 : @guaranteed)
501500
// end_borrow %reborrow_2
502501
//
503502
// Calling `gather(forPhi: %forward_2)`
@@ -606,8 +605,8 @@ private func mapToPhi<PredecessorSequence: Sequence<Value>> (
606605
/// %outerBorrow = begin_borrow %0 // %0
607606
/// %innerBorrow = begin_borrow %outerBorrow // %outerBorrow
608607
/// br bb1(%outerBorrow, %innerBorrow)
609-
/// bb1(%outerReborrow : @guaranteed, // %0
610-
/// %innerReborrow : @guaranteed) // %outerReborrow
608+
/// bb1(%outerReborrow : @reborrow, // %0
609+
/// %innerReborrow : @reborrow) // %outerReborrow
611610
///
612611
func gatherEnclosingValues(for value: Value,
613612
in enclosingValues: inout Stack<Value>,
@@ -735,11 +734,11 @@ private struct EnclosingValues {
735734
// %value = ...
736735
// %borrow = begin_borrow %value
737736
// br one(%borrow)
738-
// one(%reborrow_1 : @guaranteed)
737+
// one(%reborrow_1 : @reborrow)
739738
// br two(%value, %reborrow_1)
740-
// two(%phi_2 : @owned, %reborrow_2 : @guaranteed)
739+
// two(%phi_2 : @owned, %reborrow_2 : @reborrow)
741740
// br three(%value, %reborrow_2)
742-
// three(%phi_3 : @owned, %reborrow_3 : @guaranteed)
741+
// three(%phi_3 : @owned, %reborrow_3 : @reborrow)
743742
// end_borrow %reborrow_3
744743
// destroy_value %phi_3
745744
//
@@ -758,7 +757,7 @@ private struct EnclosingValues {
758757
// %struct = struct (%outerBorrowA, outerBorrowB)
759758
// %borrow = begin_borrow %struct
760759
// br one(%outerBorrowA, %borrow)
761-
// one(%outerReborrow : @guaranteed, %reborrow : @guaranteed)
760+
// one(%outerReborrow : @reborrow, %reborrow : @reborrow)
762761
//
763762
// gather(forReborrow: %reborrow) finds (%outerReborrow, %outerBorrowB).
764763
//

SwiftCompilerSources/Sources/Optimizer/Utilities/OwnershipLiveness.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ extension AddressLifetimeDefUseWalker {
329329
/// %0 = begin_borrow %outerValue
330330
/// %1 = begin_borrow %0
331331
/// end_borrow %1 // inner "use point" of %0
332-
/// end_borrow %0 // outer use of %1
332+
/// end_borrow %0 // outer use of %0
333333
///
334334
/// This becomes more complicated with reborrows and closures. The
335335
/// implementation can simply rely on IsInnerLifetime to know whether
@@ -492,7 +492,7 @@ extension OwnershipUseVisitor {
492492
}
493493
}
494494

495-
/// Visit only those uses of an value within an inner borrow scope
495+
/// Visit only those uses of a value within an inner borrow scope
496496
/// that may affect the outer lifetime. An inner borrow scope is one
497497
/// in which the borrowing operand is itself a use of the outer
498498
/// lifetime, including: begin_borrow, reborrow, partial_apply,

0 commit comments

Comments
 (0)