@@ -474,6 +474,10 @@ final public class RetainValueInst : RefCountingInst {
474
474
public var value : Value { return operand. value }
475
475
}
476
476
477
+ final public class UnmanagedRetainValueInst : RefCountingInst {
478
+ public var value : Value { return operand. value }
479
+ }
480
+
477
481
final public class RetainValueAddrInst : RefCountingInst {
478
482
}
479
483
@@ -492,6 +496,10 @@ final public class ReleaseValueInst : RefCountingInst {
492
496
public var value : Value { return operand. value }
493
497
}
494
498
499
+ final public class UnmanagedReleaseValueInst : RefCountingInst {
500
+ public var value : Value { return operand. value }
501
+ }
502
+
495
503
final public class DestroyValueInst : Instruction , UnaryInstruction {
496
504
public var destroyedValue : Value { operand. value }
497
505
}
@@ -980,7 +988,13 @@ final public class ProjectBoxInst : SingleValueInstruction, UnaryInstruction {
980
988
public var fieldIndex : Int { bridged. ProjectBoxInst_fieldIndex ( ) }
981
989
}
982
990
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 {
984
998
public var fromValue : Value { operand. value }
985
999
}
986
1000
@@ -1041,19 +1055,25 @@ final public class IsUniqueInst : SingleValueInstruction, UnaryInstruction {}
1041
1055
1042
1056
final public class IsEscapingClosureInst : SingleValueInstruction , UnaryInstruction { }
1043
1057
1044
- final public
1045
- class MarkUnresolvedNonCopyableValueInst : SingleValueInstruction , UnaryInstruction { }
1058
+ final public class MarkUnresolvedNonCopyableValueInst
1059
+ : SingleValueInstruction , UnaryInstruction , ConversionInstruction { }
1046
1060
1047
1061
final public class MarkUnresolvedMoveAddrInst : Instruction , SourceDestAddrInstruction {
1048
1062
public var isTakeOfSrc : Bool { true }
1049
1063
public var isInitializationOfDest : Bool { true }
1050
1064
}
1051
1065
1052
- final public
1053
- class CopyableToMoveOnlyWrapperAddrInst : SingleValueInstruction , UnaryInstruction { }
1066
+ final public class CopyableToMoveOnlyWrapperValueInst
1067
+ : SingleValueInstruction , UnaryInstruction , ConversionInstruction { }
1054
1068
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 { }
1057
1077
1058
1078
final public class ObjectInst : SingleValueInstruction {
1059
1079
public var baseOperands : OperandArray {
0 commit comments