@@ -474,6 +474,10 @@ final public class RetainValueInst : RefCountingInst {
474474 public var value : Value { return operand. value }
475475}
476476
477+ final public class UnmanagedRetainValueInst : RefCountingInst {
478+ public var value : Value { return operand. value }
479+ }
480+
477481final public class RetainValueAddrInst : RefCountingInst {
478482}
479483
@@ -492,6 +496,10 @@ final public class ReleaseValueInst : RefCountingInst {
492496 public var value : Value { return operand. value }
493497}
494498
499+ final public class UnmanagedReleaseValueInst : RefCountingInst {
500+ public var value : Value { return operand. value }
501+ }
502+
495503final public class DestroyValueInst : Instruction , UnaryInstruction {
496504 public var destroyedValue : Value { operand. value }
497505}
@@ -980,7 +988,13 @@ final public class ProjectBoxInst : SingleValueInstruction, UnaryInstruction {
980988 public var fieldIndex : Int { bridged. ProjectBoxInst_fieldIndex ( ) }
981989}
982990
983- final public class CopyValueInst : SingleValueInstruction , UnaryInstruction {
991+ public protocol CopyingInstruction : SingleValueInstruction , UnaryInstruction { }
992+
993+ final public class CopyValueInst : SingleValueInstruction , UnaryInstruction , CopyingInstruction {
994+ public var fromValue : Value { operand. value }
995+ }
996+
997+ final public class ExplicitCopyValueInst : SingleValueInstruction , UnaryInstruction , CopyingInstruction {
984998 public var fromValue : Value { operand. value }
985999}
9861000
@@ -1041,19 +1055,25 @@ final public class IsUniqueInst : SingleValueInstruction, UnaryInstruction {}
10411055
10421056final public class IsEscapingClosureInst : SingleValueInstruction , UnaryInstruction { }
10431057
1044- final public
1045- class MarkUnresolvedNonCopyableValueInst : SingleValueInstruction , UnaryInstruction { }
1058+ final public class MarkUnresolvedNonCopyableValueInst
1059+ : SingleValueInstruction , UnaryInstruction , ConversionInstruction { }
10461060
10471061final public class MarkUnresolvedMoveAddrInst : Instruction , SourceDestAddrInstruction {
10481062 public var isTakeOfSrc : Bool { true }
10491063 public var isInitializationOfDest : Bool { true }
10501064}
10511065
1052- final public
1053- class CopyableToMoveOnlyWrapperAddrInst : SingleValueInstruction , UnaryInstruction { }
1066+ final public class CopyableToMoveOnlyWrapperValueInst
1067+ : SingleValueInstruction , UnaryInstruction , ConversionInstruction { }
10541068
1055- final public
1056- class MoveOnlyWrapperToCopyableAddrInst : SingleValueInstruction , UnaryInstruction { }
1069+ final public class MoveOnlyWrapperToCopyableValueInst
1070+ : SingleValueInstruction , UnaryInstruction , ConversionInstruction { }
1071+
1072+ final public class CopyableToMoveOnlyWrapperAddrInst
1073+ : SingleValueInstruction , UnaryInstruction { }
1074+
1075+ final public class MoveOnlyWrapperToCopyableAddrInst
1076+ : SingleValueInstruction , UnaryInstruction { }
10571077
10581078final public class ObjectInst : SingleValueInstruction {
10591079 public var baseOperands : OperandArray {
0 commit comments