@@ -1082,22 +1082,34 @@ class GetAsyncContinuationAddrInst : SingleValueInstruction, UnaryInstruction {}
10821082
10831083final public class ExtractExecutorInst : SingleValueInstruction { }
10841084
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 {
10921105 public var valueOperand : Operand { operands [ 0 ] }
10931106 public var baseOperand : Operand { operands [ 1 ] }
10941107 public var value : Value { return valueOperand. value }
10951108 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) !
10981112 }
1099- public var isNonEscaping : Bool { dependenceKind == . NonEscaping }
1100- public var isUnresolved : Bool { dependenceKind == . Unresolved }
11011113
11021114 public func resolveToNonEscaping( ) {
11031115 bridged. MarkDependenceInst_resolveToNonEscaping ( )
@@ -1112,6 +1124,25 @@ class MarkDependenceInst : SingleValueInstruction {
11121124 }
11131125}
11141126
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+
11151146final public class RefToBridgeObjectInst : SingleValueInstruction {
11161147 public var convertedOperand : Operand { operands [ 0 ] }
11171148 public var maskOperand : Operand { operands [ 1 ] }
0 commit comments