@@ -1082,22 +1082,34 @@ class GetAsyncContinuationAddrInst : SingleValueInstruction, UnaryInstruction {}
1082
1082
1083
1083
final public class ExtractExecutorInst : SingleValueInstruction { }
1084
1084
1085
- final public
1086
- class MarkDependenceInst : SingleValueInstruction {
1087
- public enum DependenceKind : Int32 {
1088
- case Unresolved = 0
1089
- case Escaping = 1
1090
- case NonEscaping = 2
1091
- }
1085
+ public enum MarkDependenceKind : Int32 {
1086
+ case Unresolved = 0
1087
+ case Escaping = 1
1088
+ case NonEscaping = 2
1089
+ }
1090
+
1091
+ public protocol MarkDependenceInstruction : Instruction {
1092
+ var baseOperand : Operand { get }
1093
+ var base : Value { get }
1094
+ var dependenceKind : MarkDependenceKind { get }
1095
+ func resolveToNonEscaping( )
1096
+ func settleToEscaping( )
1097
+ }
1098
+
1099
+ extension MarkDependenceInstruction {
1100
+ public var isNonEscaping : Bool { dependenceKind == . NonEscaping }
1101
+ public var isUnresolved : Bool { dependenceKind == . Unresolved }
1102
+ }
1103
+
1104
+ final public class MarkDependenceInst : SingleValueInstruction , MarkDependenceInstruction {
1092
1105
public var valueOperand : Operand { operands [ 0 ] }
1093
1106
public var baseOperand : Operand { operands [ 1 ] }
1094
1107
public var value : Value { return valueOperand. value }
1095
1108
public var base : Value { return baseOperand. value }
1096
- public var dependenceKind : DependenceKind {
1097
- DependenceKind ( rawValue: bridged. MarkDependenceInst_dependenceKind ( ) . rawValue) !
1109
+
1110
+ public var dependenceKind : MarkDependenceKind {
1111
+ MarkDependenceKind ( rawValue: bridged. MarkDependenceInst_dependenceKind ( ) . rawValue) !
1098
1112
}
1099
- public var isNonEscaping : Bool { dependenceKind == . NonEscaping }
1100
- public var isUnresolved : Bool { dependenceKind == . Unresolved }
1101
1113
1102
1114
public func resolveToNonEscaping( ) {
1103
1115
bridged. MarkDependenceInst_resolveToNonEscaping ( )
@@ -1112,6 +1124,25 @@ class MarkDependenceInst : SingleValueInstruction {
1112
1124
}
1113
1125
}
1114
1126
1127
+ final public class MarkDependenceAddrInst : Instruction , MarkDependenceInstruction {
1128
+ public var addressOperand : Operand { operands [ 0 ] }
1129
+ public var baseOperand : Operand { operands [ 1 ] }
1130
+ public var address : Value { return addressOperand. value }
1131
+ public var base : Value { return baseOperand. value }
1132
+
1133
+ public var dependenceKind : MarkDependenceKind {
1134
+ MarkDependenceKind ( rawValue: bridged. MarkDependenceAddrInst_dependenceKind ( ) . rawValue) !
1135
+ }
1136
+
1137
+ public func resolveToNonEscaping( ) {
1138
+ bridged. MarkDependenceAddrInst_resolveToNonEscaping ( )
1139
+ }
1140
+
1141
+ public func settleToEscaping( ) {
1142
+ bridged. MarkDependenceAddrInst_settleToEscaping ( )
1143
+ }
1144
+ }
1145
+
1115
1146
final public class RefToBridgeObjectInst : SingleValueInstruction {
1116
1147
public var convertedOperand : Operand { operands [ 0 ] }
1117
1148
public var maskOperand : Operand { operands [ 1 ] }
0 commit comments