mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[SIL] Added strong_copy_weak_value.
The new instruction unwraps an `@sil_weak` box and produces an owned value. It is only legal in opaque values mode and is transformed by `AddressLowering` to `load_weak`.
This commit is contained in:
@@ -1444,16 +1444,20 @@ void SILSerializer::writeSILInstruction(const SILInstruction &SI) {
|
||||
}
|
||||
#define UNCHECKED_REF_STORAGE(Name, ...) \
|
||||
case SILInstructionKind::StrongCopy##Name##ValueInst:
|
||||
#define NEVER_LOADABLE_CHECKED_REF_STORAGE(Name, ...) \
|
||||
#define NEVER_LOADABLE_CHECKED_REF_STORAGE(Name, ...) \
|
||||
case SILInstructionKind::StrongCopy##Name##ValueInst: \
|
||||
case SILInstructionKind::Load##Name##Inst:
|
||||
#define ALWAYS_LOADABLE_CHECKED_REF_STORAGE(Name, ...) \
|
||||
case SILInstructionKind::Name##RetainInst: \
|
||||
case SILInstructionKind::Name##ReleaseInst: \
|
||||
case SILInstructionKind::StrongRetain##Name##Inst: \
|
||||
case SILInstructionKind::StrongCopy##Name##ValueInst:
|
||||
#define SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(Name, ...) \
|
||||
NEVER_LOADABLE_CHECKED_REF_STORAGE(Name, "...") \
|
||||
ALWAYS_LOADABLE_CHECKED_REF_STORAGE(Name, "...")
|
||||
#define SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(Name, ...) \
|
||||
case SILInstructionKind::Load##Name##Inst: \
|
||||
case SILInstructionKind::Name##RetainInst: \
|
||||
case SILInstructionKind::Name##ReleaseInst: \
|
||||
case SILInstructionKind::StrongRetain##Name##Inst: \
|
||||
case SILInstructionKind::StrongCopy##Name##ValueInst:
|
||||
#include "swift/AST/ReferenceStorage.def"
|
||||
case SILInstructionKind::RetainValueInst:
|
||||
case SILInstructionKind::DestructureStructInst:
|
||||
|
||||
Reference in New Issue
Block a user