@@ -110,6 +110,24 @@ public class MyResilientChild : MyResilientParent {
110110 public let field : Int32 = 0
111111}
112112
113+
114+ // ClassWithResilientProperty metadata accessor
115+
116+ // CHECK-LABEL: define %swift.type* @_TMaC16class_resilience26ClassWithResilientProperty()
117+ // CHECK: [[CACHE:%.*]] = load %swift.type*, %swift.type** @_TMLC16class_resilience26ClassWithResilientProperty
118+ // CHECK-NEXT: [[COND:%.*]] = icmp eq %swift.type* [[CACHE]], null
119+ // CHECK-NEXT: br i1 [[COND]], label %cacheIsNull, label %cont
120+
121+ // CHECK: cacheIsNull:
122+ // CHECK-NEXT: [[METADATA:%.*]] = call %swift.type* @swift_getResilientMetadata(
123+ // CHECK-NEXT: store %swift.type* [[METADATA]], %swift.type** @_TMLC16class_resilience26ClassWithResilientProperty
124+ // CHECK-NEXT: br label %cont
125+
126+ // CHECK: cont:
127+ // CHECK-NEXT: [[RESULT:%.*]] = phi %swift.type* [ [[CACHE]], %entry ], [ [[METADATA]], %cacheIsNull ]
128+ // CHECK-NEXT: ret %swift.type* [[RESULT]]
129+
130+
113131// ClassWithResilientProperty.color getter
114132
115133// CHECK-LABEL: define i32 @_TFC16class_resilience26ClassWithResilientPropertyg5colorVs5Int32(%C16class_resilience26ClassWithResilientProperty*)
@@ -121,6 +139,24 @@ public class MyResilientChild : MyResilientParent {
121139// CHECK-NEXT: [[FIELD_VALUE:%.*]] = load i32, i32* [[FIELD_PAYLOAD]]
122140// CHECK-NEXT: ret i32 [[FIELD_VALUE]]
123141
142+
143+ // ClassWithResilientlySizedProperty metadata accessor
144+
145+ // CHECK-LABEL: define %swift.type* @_TMaC16class_resilience33ClassWithResilientlySizedProperty()
146+ // CHECK: [[CACHE:%.*]] = load %swift.type*, %swift.type** @_TMLC16class_resilience33ClassWithResilientlySizedProperty
147+ // CHECK-NEXT: [[COND:%.*]] = icmp eq %swift.type* [[CACHE]], null
148+ // CHECK-NEXT: br i1 [[COND]], label %cacheIsNull, label %cont
149+
150+ // CHECK: cacheIsNull:
151+ // CHECK-NEXT: [[METADATA:%.*]] = call %swift.type* @swift_getResilientMetadata(
152+ // CHECK-NEXT: store %swift.type* [[METADATA]], %swift.type** @_TMLC16class_resilience33ClassWithResilientlySizedProperty
153+ // CHECK-NEXT: br label %cont
154+
155+ // CHECK: cont:
156+ // CHECK-NEXT: [[RESULT:%.*]] = phi %swift.type* [ [[CACHE]], %entry ], [ [[METADATA]], %cacheIsNull ]
157+ // CHECK-NEXT: ret %swift.type* [[RESULT]]
158+
159+
124160// ClassWithResilientlySizedProperty.color getter
125161
126162// CHECK-LABEL: define i32 @_TFC16class_resilience33ClassWithResilientlySizedPropertyg5colorVs5Int32(%C16class_resilience33ClassWithResilientlySizedProperty*)
@@ -132,6 +168,7 @@ public class MyResilientChild : MyResilientParent {
132168// CHECK-NEXT: [[FIELD_VALUE:%.*]] = load i32, i32* [[FIELD_PAYLOAD]]
133169// CHECK-NEXT: ret i32 [[FIELD_VALUE]]
134170
171+
135172// ClassWithIndirectResilientEnum.color getter
136173
137174// CHECK-LABEL: define i32 @_TFC16class_resilience30ClassWithIndirectResilientEnumg5colorVs5Int32(%C16class_resilience30ClassWithIndirectResilientEnum*)
@@ -140,6 +177,7 @@ public class MyResilientChild : MyResilientParent {
140177// CHECK-NEXT: [[FIELD_VALUE:%.*]] = load i32, i32* [[FIELD_PAYLOAD]]
141178// CHECK-NEXT: ret i32 [[FIELD_VALUE]]
142179
180+
143181// ResilientChild.field getter
144182
145183// CHECK-LABEL: define i32 @_TFC16class_resilience14ResilientChildg5fieldVs5Int32(%C16class_resilience14ResilientChild*)
@@ -151,6 +189,7 @@ public class MyResilientChild : MyResilientParent {
151189// CHECK-NEXT: [[FIELD_VALUE:%.*]] = load i32, i32* [[FIELD_PAYLOAD]]
152190// CHECK-NEXT: ret i32 [[FIELD_VALUE]]
153191
192+
154193// ResilientGenericChild.field getter
155194
156195
@@ -175,6 +214,7 @@ public class MyResilientChild : MyResilientParent {
175214// CHECK-NEXT: [[RESULT:%.*]] = load i32, i32* [[PAYLOAD_ADDR]]
176215// CHECK-NEXT: ret i32 [[RESULT]]
177216
217+
178218// MyResilientChild.field getter
179219
180220// CHECK-LABEL: define i32 @_TFC16class_resilience16MyResilientChildg5fieldVs5Int32(%C16class_resilience16MyResilientChild*)
@@ -183,37 +223,6 @@ public class MyResilientChild : MyResilientParent {
183223// CHECK-NEXT: [[RESULT:%.*]] = load i32, i32* [[PAYLOAD_ADDR]]
184224// CHECK-NEXT: ret i32 [[RESULT]]
185225
186- // ClassWithResilientProperty metadata accessor
187-
188- // CHECK-LABEL: define %swift.type* @_TMaC16class_resilience26ClassWithResilientProperty()
189- // CHECK: [[CACHE:%.*]] = load %swift.type*, %swift.type** @_TMLC16class_resilience26ClassWithResilientProperty
190- // CHECK-NEXT: [[COND:%.*]] = icmp eq %swift.type* [[CACHE]], null
191- // CHECK-NEXT: br i1 [[COND]], label %cacheIsNull, label %cont
192-
193- // CHECK: cacheIsNull:
194- // CHECK-NEXT: [[METADATA:%.*]] = call %swift.type* @swift_getResilientMetadata(
195- // CHECK-NEXT: store %swift.type* [[METADATA]], %swift.type** @_TMLC16class_resilience26ClassWithResilientProperty
196- // CHECK-NEXT: br label %cont
197-
198- // CHECK: cont:
199- // CHECK-NEXT: [[RESULT:%.*]] = phi %swift.type* [ [[CACHE]], %entry ], [ [[METADATA]], %cacheIsNull ]
200- // CHECK-NEXT: ret %swift.type* [[RESULT]]
201-
202- // ClassWithResilientlySizedProperty metadata accessor
203-
204- // CHECK-LABEL: define %swift.type* @_TMaC16class_resilience33ClassWithResilientlySizedProperty()
205- // CHECK: [[CACHE:%.*]] = load %swift.type*, %swift.type** @_TMLC16class_resilience33ClassWithResilientlySizedProperty
206- // CHECK-NEXT: [[COND:%.*]] = icmp eq %swift.type* [[CACHE]], null
207- // CHECK-NEXT: br i1 [[COND]], label %cacheIsNull, label %cont
208-
209- // CHECK: cacheIsNull:
210- // CHECK-NEXT: [[METADATA:%.*]] = call %swift.type* @swift_getResilientMetadata(
211- // CHECK-NEXT: store %swift.type* [[METADATA]], %swift.type** @_TMLC16class_resilience33ClassWithResilientlySizedProperty
212- // CHECK-NEXT: br label %cont
213-
214- // CHECK: cont:
215- // CHECK-NEXT: [[RESULT:%.*]] = phi %swift.type* [ [[CACHE]], %entry ], [ [[METADATA]], %cacheIsNull ]
216- // CHECK-NEXT: ret %swift.type* [[RESULT]]
217226
218227// ClassWithResilientProperty metadata instantiation function
219228
@@ -232,6 +241,7 @@ public class MyResilientChild : MyResilientParent {
232241// CHECK-native-NEXT: store [[INT]] [[FIELD_OFFSET]], [[INT]]* @_TWvdvC16class_resilience26ClassWithResilientProperty5colorVs5Int32
233242// CHECK: ret %swift.type* [[METADATA]]
234243
244+
235245// ClassWithResilientlySizedProperty metadata instantiation function
236246
237247// CHECK-LABEL: define private %swift.type* @create_generic_metadata_ClassWithResilientlySizedProperty(%swift.type_pattern*, i8**)
0 commit comments