@@ -1018,7 +1018,8 @@ swift::findTransitiveUsesForAddress(SILValue projectedAddress,
1018
1018
isa<EndUnpairedAccessInst>(user) || isa<WitnessMethodInst>(user) ||
1019
1019
isa<SwitchEnumAddrInst>(user) || isa<CheckedCastAddrBranchInst>(user) ||
1020
1020
isa<SelectEnumAddrInst>(user) || isa<InjectEnumAddrInst>(user) ||
1021
- isa<IsUniqueInst>(user) || isa<ValueMetatypeInst>(user)) {
1021
+ isa<IsUniqueInst>(user) || isa<ValueMetatypeInst>(user) ||
1022
+ isa<DebugValueInst>(user) || isa<EndBorrowInst>(user)) {
1022
1023
leafUse (op);
1023
1024
continue ;
1024
1025
}
@@ -1052,14 +1053,12 @@ swift::findTransitiveUsesForAddress(SILValue projectedAddress,
1052
1053
1053
1054
// If we have a load_borrow, add it's end scope to the liveness requirement.
1054
1055
if (auto *lbi = dyn_cast<LoadBorrowInst>(user)) {
1055
- if (foundUses) {
1056
- // FIXME: if we can assume complete lifetimes, then this should be
1057
- // as simple as:
1058
- // for (Operand *use : lbi->getUses()) {
1059
- // if (use->endsLocalBorrowScope()) {
1060
- if (!findInnerTransitiveGuaranteedUses (lbi, foundUses)) {
1061
- result = meet (result, AddressUseKind::PointerEscape);
1062
- }
1056
+ // FIXME: if we can assume complete lifetimes, then this should be
1057
+ // as simple as:
1058
+ // for (Operand *use : lbi->getUses()) {
1059
+ // if (use->endsLocalBorrowScope()) {
1060
+ if (!findInnerTransitiveGuaranteedUses (lbi, foundUses)) {
1061
+ result = meet (result, AddressUseKind::PointerEscape);
1063
1062
}
1064
1063
continue ;
1065
1064
}
0 commit comments