@@ -2108,6 +2108,7 @@ bool GatherUniqueStorageUses::visitUse(Operand *use, AccessUseType useTy) {
2108
2108
case SILInstructionKind::InjectEnumAddrInst:
2109
2109
return visitor.visitStore (use);
2110
2110
2111
+ case SILInstructionKind::ExplicitCopyAddrInst:
2111
2112
case SILInstructionKind::CopyAddrInst:
2112
2113
if (operIdx == CopyLikeInstruction::Dest) {
2113
2114
return visitor.visitStore (use);
@@ -2146,6 +2147,10 @@ bool swift::memInstMustInitialize(Operand *memOper) {
2146
2147
auto *CAI = cast<CopyAddrInst>(memInst);
2147
2148
return CAI->getDest () == address && CAI->isInitializationOfDest ();
2148
2149
}
2150
+ case SILInstructionKind::ExplicitCopyAddrInst: {
2151
+ auto *CAI = cast<ExplicitCopyAddrInst>(memInst);
2152
+ return CAI->getDest () == address && CAI->isInitializationOfDest ();
2153
+ }
2149
2154
case SILInstructionKind::MarkUnresolvedMoveAddrInst: {
2150
2155
return cast<MarkUnresolvedMoveAddrInst>(memInst)->getDest () == address;
2151
2156
}
@@ -2594,6 +2599,11 @@ void swift::visitAccessedAddress(SILInstruction *I,
2594
2599
visitor (&I->getAllOperands ()[CopyAddrInst::Dest]);
2595
2600
return ;
2596
2601
2602
+ case SILInstructionKind::ExplicitCopyAddrInst:
2603
+ visitor (&I->getAllOperands ()[ExplicitCopyAddrInst::Src]);
2604
+ visitor (&I->getAllOperands ()[ExplicitCopyAddrInst::Dest]);
2605
+ return ;
2606
+
2597
2607
case SILInstructionKind::MarkUnresolvedMoveAddrInst:
2598
2608
visitor (&I->getAllOperands ()[MarkUnresolvedMoveAddrInst::Src]);
2599
2609
visitor (&I->getAllOperands ()[MarkUnresolvedMoveAddrInst::Dest]);
0 commit comments