@@ -52,7 +52,8 @@ class TakesArrayLiteral<Element> : ExpressibleByArrayLiteral {
52
52
// CHECK: [[ALLOCATE_VARARGS:%.*]] = function_ref @$ss27_allocateUninitializedArrayySayxG_BptBwlF
53
53
// CHECK: [[ARR_TMP:%.*]] = apply [[ALLOCATE_VARARGS]]<Int>([[ARRAY_LENGTH]])
54
54
// CHECK: ([[ARR:%.*]], [[ADDRESS:%.*]]) = destructure_tuple [[ARR_TMP]]
55
- // CHECK: [[POINTER:%.*]] = pointer_to_address [[ADDRESS]]
55
+ // CHECK: [[MDI:%.*]] = mark_dependence [[ADDRESS]]
56
+ // CHECK: [[POINTER:%.*]] = pointer_to_address [[MDI]]
56
57
// CHECK: store [[TMP:%.*]] to [trivial] [[POINTER]]
57
58
// CHECK: [[IDX1:%.*]] = integer_literal $Builtin.Word, 1
58
59
// CHECK: [[POINTER1:%.*]] = index_addr [[POINTER]] : $*Int, [[IDX1]] : $Builtin.Word
@@ -76,7 +77,8 @@ class Klass {}
76
77
// CHECK: [[ALLOCATE_VARARGS:%.*]] = function_ref @$ss27_allocateUninitializedArrayySayxG_BptBwlF
77
78
// CHECK: [[ARR_TMP:%.*]] = apply [[ALLOCATE_VARARGS]]<Klass>([[ARRAY_LENGTH]])
78
79
// CHECK: ([[ARR:%.*]], [[ADDRESS:%.*]]) = destructure_tuple [[ARR_TMP]]
79
- // CHECK: [[POINTER:%.*]] = pointer_to_address [[ADDRESS]]
80
+ // CHECK: [[MDI:%.*]] = mark_dependence [[ADDRESS]]
81
+ // CHECK: [[POINTER:%.*]] = pointer_to_address [[MDI]]
80
82
// CHECK: [[KLASS_METATYPE:%.*]] = metatype $@thick Klass.Type
81
83
// CHECK: [[CTOR:%.*]] = function_ref @$s8literals5KlassCACycfC : $@convention(method) (@thick Klass.Type) -> @owned Klass
82
84
// CHECK: [[TMP:%.*]] = apply [[CTOR]]([[KLASS_METATYPE]]) : $@convention(method) (@thick Klass.Type) -> @owned Klass
@@ -100,7 +102,8 @@ struct Foo<T> {
100
102
// CHECK: [[ALLOCATE_VARARGS:%.*]] = function_ref @$ss27_allocateUninitializedArrayySayxG_BptBwlF
101
103
// CHECK: [[ARR_TMP:%.*]] = apply [[ALLOCATE_VARARGS]]<Foo<T>>([[ARRAY_LENGTH]])
102
104
// CHECK: ([[ARR:%.*]], [[ADDRESS:%.*]]) = destructure_tuple [[ARR_TMP]]
103
- // CHECK: [[POINTER:%.*]] = pointer_to_address [[ADDRESS]]
105
+ // CHECK: [[MDI:%.*]] = mark_dependence [[ADDRESS]]
106
+ // CHECK: [[POINTER:%.*]] = pointer_to_address [[MDI]]
104
107
// CHECK: copy_addr %0 to [init] [[POINTER]] : $*Foo<T>
105
108
// CHECK: [[FIN_FN:%.*]] = function_ref @$ss27_finalizeUninitializedArrayySayxGABnlF
106
109
// CHECK: [[FIN_ARR:%.*]] = apply [[FIN_FN]]<Foo<T>>([[ARR]])
@@ -117,7 +120,8 @@ func returnsAddressOnlyElementArray<T>(t: Foo<T>) -> TakesArrayLiteral<Foo<T>> {
117
120
// CHECK: [[ALLOCATE_VARARGS:%.*]] = function_ref @$ss27_allocateUninitializedArrayySayxG_BptBwlF
118
121
// CHECK: [[ARR_TMP:%.*]] = apply [[ALLOCATE_VARARGS]]<Foo<T>>([[ARRAY_LENGTH]])
119
122
// CHECK: ([[ARR:%.*]], [[ADDRESS:%.*]]) = destructure_tuple [[ARR_TMP]]
120
- // CHECK: [[POINTER:%.*]] = pointer_to_address [[ADDRESS]]
123
+ // CHECK: [[MDI:%.*]] = mark_dependence [[ADDRESS]]
124
+ // CHECK: [[POINTER:%.*]] = pointer_to_address [[MDI]]
121
125
// CHECK: copy_addr %0 to [init] [[POINTER]] : $*Foo<T>
122
126
// CHECK: [[FIN_FN:%.*]] = function_ref @$ss27_finalizeUninitializedArrayySayxGABnlF
123
127
// CHECK: [[FIN_ARR:%.*]] = apply [[FIN_FN]]<Foo<T>>([[ARR]])
@@ -136,7 +140,8 @@ extension Foo {
136
140
// CHECK: [[ALLOCATE_VARARGS:%.*]] = function_ref @$ss27_allocateUninitializedArrayySayxG_BptBwlF
137
141
// CHECK: [[ARR_TMP:%.*]] = apply [[ALLOCATE_VARARGS]]<Foo<T>>([[ARRAY_LENGTH]])
138
142
// CHECK: ([[ARR:%.*]], [[ADDRESS:%.*]]) = destructure_tuple [[ARR_TMP]]
139
- // CHECK: [[POINTER:%.*]] = pointer_to_address [[ADDRESS]]
143
+ // CHECK: [[MDI:%.*]] = mark_dependence [[ADDRESS]]
144
+ // CHECK: [[POINTER:%.*]] = pointer_to_address [[MDI]]
140
145
// CHECK: [[ACCESS:%.*]] = begin_access [read] [unknown] %0 : $*Foo<T>
141
146
// CHECK: copy_addr [[ACCESS]] to [init] [[POINTER]] : $*Foo<T>
142
147
// CHECK: end_access [[ACCESS]] : $*Foo<T>
@@ -161,7 +166,8 @@ struct Foo2 {
161
166
// CHECK: [[ALLOCATE_VARARGS:%.*]] = function_ref @$ss27_allocateUninitializedArrayySayxG_BptBwlF
162
167
// CHECK: [[ARR_TMP:%.*]] = apply [[ALLOCATE_VARARGS]]<Foo2>([[ARRAY_LENGTH]])
163
168
// CHECK: ([[ARR:%.*]], [[ADDRESS:%.*]]) = destructure_tuple [[ARR_TMP]]
164
- // CHECK: [[POINTER:%.*]] = pointer_to_address [[ADDRESS]]
169
+ // CHECK: [[MDI:%.*]] = mark_dependence [[ADDRESS]]
170
+ // CHECK: [[POINTER:%.*]] = pointer_to_address [[MDI]]
165
171
// CHECK: [[METATYPE_FOO2:%.*]] = metatype $@thin Foo2.Type
166
172
// CHECK: [[METATYPE_KLASS:%.*]] = metatype $@thick Klass.Type
167
173
// CHECK: [[CTOR:%.*]] = function_ref @$s8literals5KlassCACycfC : $@convention(method) (@thick Klass.Type) -> @owned Klass
@@ -185,7 +191,8 @@ func returnsNonTrivialStruct() -> TakesArrayLiteral<Foo2> {
185
191
// CHECK: [[ALLOCATE_VARARGS:%.*]] = function_ref @$ss27_allocateUninitializedArrayySayxG_BptBwlF
186
192
// CHECK: [[ARR_TMP:%.*]] = apply [[ALLOCATE_VARARGS]]<NestedLValuePath>([[ARRAY_LENGTH]])
187
193
// CHECK: ([[ARR:%.*]], [[ADDRESS:%.*]]) = destructure_tuple [[ARR_TMP]]
188
- // CHECK: [[POINTER:%.*]] = pointer_to_address [[ADDRESS]]
194
+ // CHECK: [[MDI:%.*]] = mark_dependence [[ADDRESS]]
195
+ // CHECK: [[POINTER:%.*]] = pointer_to_address [[MDI]]
189
196
190
197
// CHECK: [[ACCESS:%.*]] = begin_access [modify] [unknown] %0 : $*NestedLValuePath
191
198
// CHECK: [[OTHER_FN:%.*]] = function_ref @$s8literals16NestedLValuePathV21otherMutatingFunctionACyF : $@convention(method) (@inout NestedLValuePath) -> @owned NestedLValuePath
@@ -223,7 +230,8 @@ protocol WrapsSelfInArray {}
223
230
// CHECK: [[ALLOCATE_VARARGS:%.*]] = function_ref @$ss27_allocateUninitializedArrayySayxG_BptBwlF
224
231
// CHECK: [[ARR_TMP:%.*]] = apply [[ALLOCATE_VARARGS]]<any WrapsSelfInArray>([[ARRAY_LENGTH]])
225
232
// CHECK: ([[ARR:%.*]], [[ADDRESS:%.*]]) = destructure_tuple [[ARR_TMP]]
226
- // CHECK: [[POINTER:%.*]] = pointer_to_address [[ADDRESS]]
233
+ // CHECK: [[MDI:%.*]] = mark_dependence [[ADDRESS]]
234
+ // CHECK: [[POINTER:%.*]] = pointer_to_address [[MDI]]
227
235
// CHECK: [[ACCESS:%.*]] = begin_access [read] [unknown] %0 : $*Self
228
236
// CHECK: [[EXISTENTIAL:%.*]] = init_existential_addr [[POINTER]] : $*any WrapsSelfInArray, $Self
229
237
// CHECK: copy_addr [[ACCESS]] to [init] [[EXISTENTIAL]] : $*Self
@@ -252,7 +260,8 @@ func makeBasic<T : FooProtocol>() -> T { return T() }
252
260
// CHECK: [[ALLOCATE_VARARGS:%.*]] = function_ref @$ss27_allocateUninitializedArrayySayxG_BptBwlF
253
261
// CHECK: [[ARR_TMP:%.*]] = apply [[ALLOCATE_VARARGS]]<T>([[ARRAY_LENGTH]])
254
262
// CHECK: ([[ARR:%.*]], [[ADDRESS:%.*]]) = destructure_tuple [[ARR_TMP]]
255
- // CHECK: [[POINTER:%.*]] = pointer_to_address [[ADDRESS]]
263
+ // CHECK: [[MDI:%.*]] = mark_dependence [[ADDRESS]]
264
+ // CHECK: [[POINTER:%.*]] = pointer_to_address [[MDI]]
256
265
// CHECK: [[FN:%.*]] = function_ref @$s8literals9makeBasicxyAA11FooProtocolRzlF : $@convention(thin)
257
266
// CHECK: [[TMP:%.*]] = apply [[FN]]<T>([[POINTER]])
258
267
// CHECK: [[IDX:%.*]] = integer_literal $Builtin.Word, 1
@@ -285,7 +294,8 @@ class TakesDictionaryLiteral<Key, Value> : ExpressibleByDictionaryLiteral {
285
294
// CHECK: [[ALLOCATE_VARARGS:%.*]] = function_ref @$ss27_allocateUninitializedArrayySayxG_BptBwlF : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer)
286
295
// CHECK: [[ARR_TMP:%.*]] = apply [[ALLOCATE_VARARGS]]<(Int, Int)>([[ARRAY_LENGTH]])
287
296
// CHECK: ([[ARR:%.*]], [[ADDRESS:%.*]]) = destructure_tuple [[ARR_TMP]]
288
- // CHECK: [[TUPLE_ADDR:%.*]] = pointer_to_address %9 : $Builtin.RawPointer to [strict] $*(Int, Int)
297
+ // CHECK: [[MDI:%.*]] = mark_dependence [[ADDRESS]]
298
+ // CHECK: [[TUPLE_ADDR:%.*]] = pointer_to_address [[MDI]] : $Builtin.RawPointer to [strict] $*(Int, Int)
289
299
// CHECK: [[KEY_ADDR:%.*]] = tuple_element_addr [[TUPLE_ADDR]] : $*(Int, Int), 0
290
300
// CHECK: [[VALUE_ADDR:%.*]] = tuple_element_addr [[TUPLE_ADDR]] : $*(Int, Int), 1
291
301
// CHECK: store [[TMP]] to [trivial] [[KEY_ADDR]] : $*Int
0 commit comments