@@ -35,19 +35,19 @@ bool swift::canOpcodeForwardGuaranteedValues(SILValue value) {
35
35
if (auto *arg = dyn_cast<SILArgument>(value))
36
36
if (auto *ti = arg->getSingleTerminator ())
37
37
if (ti->isTransformationTerminator ())
38
- return OwnershipForwardingMixin::get (ti)->isDirectlyForwarding ();
38
+ return OwnershipForwardingMixin::get (ti)->preservesOwnership ();
39
39
40
40
if (auto *inst = value->getDefiningInstruction ())
41
41
if (auto *mixin = OwnershipForwardingMixin::get (inst))
42
- return mixin->isDirectlyForwarding () &&
42
+ return mixin->preservesOwnership () &&
43
43
!isa<OwnedFirstArgForwardingSingleValueInst>(inst);
44
44
45
45
return false ;
46
46
}
47
47
48
48
bool swift::canOpcodeForwardGuaranteedValues (Operand *use) {
49
49
if (auto *mixin = OwnershipForwardingMixin::get (use->getUser ()))
50
- return mixin->isDirectlyForwarding () &&
50
+ return mixin->preservesOwnership () &&
51
51
!isa<OwnedFirstArgForwardingSingleValueInst>(use->getUser ());
52
52
return false ;
53
53
}
@@ -58,11 +58,11 @@ bool swift::canOpcodeForwardOwnedValues(SILValue value) {
58
58
if (auto *arg = dyn_cast<SILPhiArgument>(value))
59
59
if (auto *predTerm = arg->getSingleTerminator ())
60
60
if (predTerm->isTransformationTerminator ())
61
- return OwnershipForwardingMixin::get (predTerm)->isDirectlyForwarding ();
61
+ return OwnershipForwardingMixin::get (predTerm)->preservesOwnership ();
62
62
63
63
if (auto *inst = value->getDefiningInstruction ())
64
64
if (auto *mixin = OwnershipForwardingMixin::get (inst))
65
- return mixin->isDirectlyForwarding () &&
65
+ return mixin->preservesOwnership () &&
66
66
!isa<GuaranteedFirstArgForwardingSingleValueInst>(inst);
67
67
68
68
return false ;
@@ -71,7 +71,7 @@ bool swift::canOpcodeForwardOwnedValues(SILValue value) {
71
71
bool swift::canOpcodeForwardOwnedValues (Operand *use) {
72
72
auto *user = use->getUser ();
73
73
if (auto *mixin = OwnershipForwardingMixin::get (user))
74
- return mixin->isDirectlyForwarding () &&
74
+ return mixin->preservesOwnership () &&
75
75
!isa<GuaranteedFirstArgForwardingSingleValueInst>(user);
76
76
return false ;
77
77
}
@@ -1078,7 +1078,7 @@ bool swift::getAllBorrowIntroducingValues(SILValue inputValue,
1078
1078
auto *arg = cast<SILPhiArgument>(value);
1079
1079
auto *termInst = arg->getSingleTerminator ();
1080
1080
assert (termInst && termInst->isTransformationTerminator () &&
1081
- OwnershipForwardingMixin::get (termInst)->isDirectlyForwarding ());
1081
+ OwnershipForwardingMixin::get (termInst)->preservesOwnership ());
1082
1082
assert (termInst->getNumOperands () == 1 &&
1083
1083
" Transforming terminators should always have a single operand" );
1084
1084
worklist.push_back (termInst->getAllOperands ()[0 ].get ());
@@ -1130,7 +1130,7 @@ BorrowedValue swift::getSingleBorrowIntroducingValue(SILValue inputValue) {
1130
1130
auto *arg = cast<SILPhiArgument>(currentValue);
1131
1131
auto *termInst = arg->getSingleTerminator ();
1132
1132
assert (termInst && termInst->isTransformationTerminator () &&
1133
- OwnershipForwardingMixin::get (termInst)->isDirectlyForwarding ());
1133
+ OwnershipForwardingMixin::get (termInst)->preservesOwnership ());
1134
1134
assert (termInst->getNumOperands () == 1 &&
1135
1135
" Transformation terminators should only have single operands" );
1136
1136
currentValue = termInst->getAllOperands ()[0 ].get ();
@@ -1183,7 +1183,7 @@ bool swift::getAllOwnedValueIntroducers(
1183
1183
auto *arg = cast<SILPhiArgument>(value);
1184
1184
auto *termInst = arg->getSingleTerminator ();
1185
1185
assert (termInst && termInst->isTransformationTerminator () &&
1186
- OwnershipForwardingMixin::get (termInst)->isDirectlyForwarding ());
1186
+ OwnershipForwardingMixin::get (termInst)->preservesOwnership ());
1187
1187
assert (termInst->getNumOperands () == 1 &&
1188
1188
" Transforming terminators should always have a single operand" );
1189
1189
worklist.push_back (termInst->getAllOperands ()[0 ].get ());
@@ -1231,7 +1231,7 @@ OwnedValueIntroducer swift::getSingleOwnedValueIntroducer(SILValue inputValue) {
1231
1231
auto *arg = cast<SILPhiArgument>(currentValue);
1232
1232
auto *termInst = arg->getSingleTerminator ();
1233
1233
assert (termInst && termInst->isTransformationTerminator () &&
1234
- OwnershipForwardingMixin::get (termInst)->isDirectlyForwarding ());
1234
+ OwnershipForwardingMixin::get (termInst)->preservesOwnership ());
1235
1235
assert (termInst->getNumOperands ()
1236
1236
- termInst->getNumTypeDependentOperands () == 1 &&
1237
1237
" Transformation terminators should only have single operands" );
0 commit comments