@@ -2112,6 +2112,7 @@ bool GatherUniqueStorageUses::visitUse(Operand *use, AccessUseType useTy) {
2112
2112
case SILInstructionKind::InjectEnumAddrInst:
2113
2113
return visitor.visitStore (use);
2114
2114
2115
+ case SILInstructionKind::ExplicitCopyAddrInst:
2115
2116
case SILInstructionKind::CopyAddrInst:
2116
2117
if (operIdx == CopyLikeInstruction::Dest) {
2117
2118
return visitor.visitStore (use);
@@ -2150,6 +2151,10 @@ bool swift::memInstMustInitialize(Operand *memOper) {
2150
2151
auto *CAI = cast<CopyAddrInst>(memInst);
2151
2152
return CAI->getDest () == address && CAI->isInitializationOfDest ();
2152
2153
}
2154
+ case SILInstructionKind::ExplicitCopyAddrInst: {
2155
+ auto *CAI = cast<ExplicitCopyAddrInst>(memInst);
2156
+ return CAI->getDest () == address && CAI->isInitializationOfDest ();
2157
+ }
2153
2158
case SILInstructionKind::MarkUnresolvedMoveAddrInst: {
2154
2159
return cast<MarkUnresolvedMoveAddrInst>(memInst)->getDest () == address;
2155
2160
}
@@ -2598,6 +2603,11 @@ void swift::visitAccessedAddress(SILInstruction *I,
2598
2603
visitor (&I->getAllOperands ()[CopyAddrInst::Dest]);
2599
2604
return ;
2600
2605
2606
+ case SILInstructionKind::ExplicitCopyAddrInst:
2607
+ visitor (&I->getAllOperands ()[ExplicitCopyAddrInst::Src]);
2608
+ visitor (&I->getAllOperands ()[ExplicitCopyAddrInst::Dest]);
2609
+ return ;
2610
+
2601
2611
case SILInstructionKind::MarkUnresolvedMoveAddrInst:
2602
2612
visitor (&I->getAllOperands ()[MarkUnresolvedMoveAddrInst::Src]);
2603
2613
visitor (&I->getAllOperands ()[MarkUnresolvedMoveAddrInst::Dest]);
0 commit comments