Skip to content

Commit 36893aa

Browse files
authored
Merge pull request #60717 from gottesmm/pr-00503aff6555a1f03b7b992c1db47b30ca05eaa9
[move-only] Add support for explicit_copy_addr in a few places in MemAccessUtils that I missed when introducing the instruction.
2 parents 064b713 + 7361639 commit 36893aa

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

lib/SIL/Utils/MemAccessUtils.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2112,6 +2112,7 @@ bool GatherUniqueStorageUses::visitUse(Operand *use, AccessUseType useTy) {
21122112
case SILInstructionKind::InjectEnumAddrInst:
21132113
return visitor.visitStore(use);
21142114

2115+
case SILInstructionKind::ExplicitCopyAddrInst:
21152116
case SILInstructionKind::CopyAddrInst:
21162117
if (operIdx == CopyLikeInstruction::Dest) {
21172118
return visitor.visitStore(use);
@@ -2150,6 +2151,10 @@ bool swift::memInstMustInitialize(Operand *memOper) {
21502151
auto *CAI = cast<CopyAddrInst>(memInst);
21512152
return CAI->getDest() == address && CAI->isInitializationOfDest();
21522153
}
2154+
case SILInstructionKind::ExplicitCopyAddrInst: {
2155+
auto *CAI = cast<ExplicitCopyAddrInst>(memInst);
2156+
return CAI->getDest() == address && CAI->isInitializationOfDest();
2157+
}
21532158
case SILInstructionKind::MarkUnresolvedMoveAddrInst: {
21542159
return cast<MarkUnresolvedMoveAddrInst>(memInst)->getDest() == address;
21552160
}
@@ -2598,6 +2603,11 @@ void swift::visitAccessedAddress(SILInstruction *I,
25982603
visitor(&I->getAllOperands()[CopyAddrInst::Dest]);
25992604
return;
26002605

2606+
case SILInstructionKind::ExplicitCopyAddrInst:
2607+
visitor(&I->getAllOperands()[ExplicitCopyAddrInst::Src]);
2608+
visitor(&I->getAllOperands()[ExplicitCopyAddrInst::Dest]);
2609+
return;
2610+
26012611
case SILInstructionKind::MarkUnresolvedMoveAddrInst:
26022612
visitor(&I->getAllOperands()[MarkUnresolvedMoveAddrInst::Src]);
26032613
visitor(&I->getAllOperands()[MarkUnresolvedMoveAddrInst::Dest]);

0 commit comments

Comments
 (0)