Skip to content

Commit ec09cb5

Browse files
nate-chandleraschwaighofer
authored andcommitted
Overhauled prespecialized-metadata/*.
Made the following changes: - migrated to opaque pointers - replaced some long lines with CHECK-SAME lines - replaced direct hard references like @"foo" with foo, making arm64e matching easier
1 parent a56b148 commit ec09cb5

File tree

91 files changed

+2415
-5171
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+2415
-5171
lines changed

test/IRGen/prespecialized-metadata/class-fileprivate-2argument-1_distinct_use-1st_argument_generic_class-2nd_argument_distinct_generic_class.swift

Lines changed: 40 additions & 200 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// RUN: %swift %use_no_opaque_pointers -prespecialize-generic-metadata -target %module-target-future -emit-ir %s | %FileCheck %s -DINT=i%target-ptrsize -DALIGNMENT=%target-alignment --check-prefix=CHECK --check-prefix=CHECK-%target-vendor
2-
// RUN: %swift -prespecialize-generic-metadata -target %module-target-future -emit-ir %s
1+
// RUN: %swift -prespecialize-generic-metadata -target %module-target-future -emit-ir %s | %FileCheck %s -DINT=i%target-ptrsize -DALIGNMENT=%target-alignment --check-prefix=CHECK --check-prefix=CHECK-%target-vendor
32

43
// REQUIRES: VENDOR=apple || OS=linux-gnu
54
// UNSUPPORTED: CPU=i386 && OS=ios
@@ -10,13 +9,13 @@
109
// CHECK-apple-SAME: global
1110
// CHECK-unknown-SAME: constant
1211
// CHECK-SAME: <{
13-
// CHECK-SAME: void (%T4main5Value[[UNIQUE_ID_1]]LLC*)*,
14-
// CHECK-SAME: i8**,
12+
// CHECK-SAME: ptr,
13+
// CHECK-SAME: ptr,
1514
// : [[INT]],
16-
// CHECK-apple-SAME: %objc_class*,
17-
// CHECK-unknown-SAME: %swift.type*,
18-
// CHECK-apple-SAME: %swift.opaque*,
19-
// CHECK-apple-SAME: %swift.opaque*,
15+
// CHECK-apple-SAME: ptr,
16+
// CHECK-unknown-SAME: ptr,
17+
// CHECK-apple-SAME: ptr,
18+
// CHECK-apple-SAME: ptr,
2019
// CHECK-apple-SAME: [[INT]],
2120
// CHECK-SAME: i32,
2221
// CHECK-SAME: i32,
@@ -25,57 +24,27 @@
2524
// CHECK-SAME: i16,
2625
// CHECK-SAME: i32,
2726
// CHECK-SAME: i32,
28-
// CHECK-SAME: %swift.type_descriptor*,
29-
// CHECK-SAME: i8*,
30-
// CHECK-SAME: %swift.type*,
31-
// CHECK-unknown-SAME: %swift.type*,
27+
// CHECK-SAME: ptr,
28+
// CHECK-SAME: ptr,
29+
// CHECK-SAME: ptr,
30+
// CHECK-unknown-SAME: ptr,
3231
// CHECK-SAME: [[INT]],
3332
// CHECK-unknown-SAME: [[INT]],
34-
// CHECK-apple-SAME: %T4main5Value[[UNIQUE_ID_1]]LLC* (
35-
// CHECK-apple-SAME: %swift.opaque*,
36-
// CHECK-apple-SAME: %swift.opaque*,
37-
// CHECK-apple-SAME: %swift.type*
38-
// CHECK-SAME: )*
33+
// CHECK-apple-SAME: ptr
3934
// CHECK-SAME: }> <{
40-
// CHECK-SAME: void (%T4main5Value[[UNIQUE_ID_1]]LLC*)*
35+
// CHECK-SAME: ptr
4136
// CHECK-SAME: $s4main5Value[[UNIQUE_ID_1]]LLCfD
4237
// CHECK-SAME: $sBoWV
4338
// CHECK-apple-SAME: $s4main5Value[[UNIQUE_ID_1]]LLCyAA9Argument1ACLLCySiGAA9Argument2ACLLCySSGGMM
4439
// CHECK-apple-SAME: OBJC_CLASS_$__TtCs12_SwiftObject
45-
// CHECK-apple-SAME: %swift.opaque* @_objc_empty_cache,
46-
// CHECK-apple-SAME: %swift.opaque* null,
40+
// CHECK-apple-SAME: _objc_empty_cache
41+
// CHECK-apple-SAME: ptr null,
4742
// CHECK-apple-SAME: [[INT]] add (
48-
// CHECK-apple-SAME: [[INT]] ptrtoint (
49-
// CHECK-apple-SAME: {
50-
// CHECK-apple-SAME: i32,
51-
// CHECK-apple-SAME: i32,
52-
// CHECK-apple-SAME: i32,
53-
// : i32,
54-
// CHECK-apple-SAME: i8*,
55-
// CHECK-apple-SAME: i8*,
56-
// CHECK-apple-SAME: i8*,
57-
// CHECK-apple-SAME: i8*,
58-
// CHECK-apple-SAME: {
59-
// CHECK-apple-SAME: i32,
60-
// CHECK-apple-SAME: i32,
61-
// CHECK-apple-SAME: [
62-
// CHECK-apple-SAME: 2 x {
63-
// CHECK-apple-SAME: [[INT]]*,
64-
// CHECK-apple-SAME: i8*,
65-
// CHECK-apple-SAME: i8*,
66-
// CHECK-apple-SAME: i32,
67-
// CHECK-apple-SAME: i32
68-
// CHECK-apple-SAME: }
69-
// CHECK-apple-SAME: ]
70-
// CHECK-apple-SAME: }*,
71-
// CHECK-apple-SAME: i8*,
72-
// CHECK-apple-SAME: i8*
73-
// CHECK-apple-SAME: }* @"_DATA_$s4main5Value[[UNIQUE_ID_1]]LLCyAA9Argument1ACLLCySiGAA9Argument2ACLLCySSGGMf" to [[INT]]
74-
// CHECK-apple-SAME: ),
43+
// CHECK-apple-SAME: ptr {{[^@]*}}@"_DATA_$s4main5Value[[UNIQUE_ID_1]]LLCyAA9Argument1ACLLCySiGAA9Argument2ACLLCySSGGMf"{{[^,]*}} to [[INT]]
7544
// CHECK-apple-SAME: [[INT]] 2
7645
// CHECK-apple-SAME: ),
7746
// CHECK-unknown-SAME: [[INT]] 0,
78-
// CHECK-unknown-SAME: %swift.type* null,
47+
// CHECK-unknown-SAME: ptr null,
7948
// CHECK-SAME: i32 26,
8049
// CHECK-SAME: i32 0,
8150
// CHECK-SAME: i32 {{(32|16)}},
@@ -84,109 +53,22 @@
8453
// CHECK-apple-SAME: i32 {{(144|84)}},
8554
// CHECK-unknown-SAME: i32 120,
8655
// CHECK-SAME: i32 {{(24|12)}},
87-
// : %swift.type_descriptor* bitcast (
88-
// : <{
89-
// : i32,
90-
// : i32,
91-
// : i32,
92-
// : i32,
93-
// : i32,
94-
// : i32,
95-
// : i32,
96-
// : i32,
97-
// : i32,
98-
// : i32,
99-
// : i32,
100-
// : i32,
101-
// : i32,
102-
// : i16,
103-
// : i16,
104-
// : i16,
105-
// : i16,
106-
// : i8,
107-
// : i8,
108-
// : i8,
109-
// : i8,
110-
// : i32,
111-
// : i32,
112-
// : %swift.method_descriptor
113-
// CHECK-SAME: $s4main5Value[[UNIQUE_ID_1]]LLCMn
114-
// : ),
115-
// CHECK-SAME: i8* null,
116-
// CHECK-SAME: %swift.type* getelementptr inbounds (
56+
// CHECK-SAME: $s4main5Value[[UNIQUE_ID_1]]LLCMn
57+
// CHECK-SAME: ptr null,
58+
// CHECK-SAME: ptr getelementptr inbounds (
11759
// CHECK-SAME: %swift.full_heapmetadata,
118-
// CHECK-SAME: %swift.full_heapmetadata* bitcast (
119-
// CHECK-SAME: <{
120-
// CHECK-SAME: void (
121-
// CHECK-SAME: %T4main9Argument1[[UNIQUE_ID_1]]LLC*
122-
// CHECK-SAME: )*,
123-
// CHECK-SAME: i8**,
124-
// : [[INT]],
125-
// CHECK-apple-SAME: %objc_class*,
126-
// CHECK-unknown-SAME: %swift.type*,
127-
// CHECK-apple-SAME: %swift.opaque*,
128-
// CHECK-apple-SAME: %swift.opaque*,
129-
// CHECK-apple-SAME: [[INT]],
130-
// CHECK-SAME: i32,
131-
// CHECK-SAME: i32,
132-
// CHECK-SAME: i32,
133-
// CHECK-SAME: i16,
134-
// CHECK-SAME: i16,
135-
// CHECK-SAME: i32,
136-
// CHECK-SAME: i32,
137-
// CHECK-SAME: %swift.type_descriptor*,
138-
// CHECK-SAME: i8*,
139-
// CHECK-SAME: %swift.type*,
140-
// CHECK-SAME: [[INT]],
141-
// CHECK-SAME: %T4main9Argument1[[UNIQUE_ID_1]]LLC* (
142-
// CHECK-SAME: %swift.opaque*,
143-
// CHECK-SAME: %swift.type*
144-
// CHECK-SAME: )*
145-
// CHECK-SAME: }>* @"$s4main9Argument1[[UNIQUE_ID_1]]LLCySiGMf" to %swift.full_heapmetadata*
146-
// CHECK-SAME: ),
60+
// CHECK-SAME: $s4main9Argument1[[UNIQUE_ID_1]]LLCySiGMf
14761
// CHECK-SAME: i32 0,
14862
// CHECK-SAME: i32 3
14963
// CHECK-SAME: ),
150-
// CHECK-SAME: %swift.type* getelementptr inbounds (
64+
// CHECK-SAME: ptr getelementptr inbounds (
15165
// CHECK-SAME: %swift.full_heapmetadata,
152-
// CHECK-SAME: %swift.full_heapmetadata* bitcast (
153-
// CHECK-SAME: <{
154-
// CHECK-SAME: void (
155-
// CHECK-SAME: %T4main9Argument2[[UNIQUE_ID_1]]LLC*
156-
// CHECK-SAME: )*,
157-
// CHECK-SAME: i8**,
158-
// : [[INT]],
159-
// CHECK-apple-SAME: %objc_class*,
160-
// CHECK-unknown-SAME: %swift.type*,
161-
// CHECK-apple-SAME: %swift.opaque*,
162-
// CHECK-apple-SAME: %swift.opaque*,
163-
// CHECK-apple-SAME: [[INT]],
164-
// CHECK-SAME: i32,
165-
// CHECK-SAME: i32,
166-
// CHECK-SAME: i32,
167-
// CHECK-SAME: i16,
168-
// CHECK-SAME: i16,
169-
// CHECK-SAME: i32,
170-
// CHECK-SAME: i32,
171-
// CHECK-SAME: %swift.type_descriptor*,
172-
// CHECK-SAME: i8*,
173-
// CHECK-SAME: %swift.type*,
174-
// CHECK-SAME: [[INT]],
175-
// CHECK-SAME: %T4main9Argument2[[UNIQUE_ID_1]]LLC* (
176-
// CHECK-SAME: %swift.opaque*,
177-
// CHECK-SAME: %swift.type*
178-
// CHECK-SAME: )*
179-
// CHECK-SAME: }>* @"$s4main9Argument2[[UNIQUE_ID_1]]LLCySSGMf" to %swift.full_heapmetadata*
180-
// CHECK-SAME: ),
66+
// CHECK-SAME: $s4main9Argument2[[UNIQUE_ID_1]]LLCySSGMf
18167
// CHECK-SAME: i32 0,
18268
// CHECK-SAME: i32 3
18369
// CHECK-SAME: ),
18470
// CHECK-SAME: [[INT]] {{(16|8)}},
18571
// CHECK-SAME: [[INT]] {{(24|12)}},
186-
// CHECK-SAME: %T4main5Value[[UNIQUE_ID_1]]LLC* (
187-
// CHECK-SAME: %swift.opaque*,
188-
// CHECK-SAME: %swift.opaque*,
189-
// CHECK-SAME: %swift.type*
19072
// CHECK-SAME: $s4main5Value[[UNIQUE_ID_1]]LLC5first6secondADyxq_Gx_q_tcfC
19173
// CHECK-SAME: }>,
19274
// CHECK-SAME: align [[ALIGNMENT]]
@@ -227,29 +109,22 @@ func consume<T>(_ t: T) {
227109
// CHECK: [[METADATA_RESPONSE:%[0-9]+]] = call swiftcc %swift.metadata_response @"$s4main5Value[[UNIQUE_ID_4:[0-9A-Z_]+]]LLCyAA9Argument1ACLLCySiGAA9Argument2ACLLCySSGGMb"([[INT]] 0)
228110
// CHECK: [[METADATA:%[0-9]+]] = extractvalue %swift.metadata_response [[METADATA_RESPONSE]], 0
229111
// CHECK: call swiftcc void @"$s4main7consumeyyxlF"(
230-
// CHECK-SAME: %swift.opaque* noalias nocapture {{%[0-9]+}},
231-
// CHECK-SAME: %swift.type* [[METADATA]])
112+
// CHECK-SAME: ptr noalias nocapture {{%[0-9]+}},
113+
// CHECK-SAME: ptr [[METADATA]])
232114
// CHECK: }
233115
func doit() {
234116
consume( Value(first: Argument1(value: 13), second: Argument2(value: "13")) )
235117
}
236118
doit()
237119

238-
// CHECK: define internal swiftcc %swift.metadata_response @"$s4main5Value[[UNIQUE_ID_1]]LLCMa"([[INT]] [[METADATA_REQUEST:%[0-9]+]], %swift.type* [[ARGUMENT1_METADATA:%[0-9]+]], %swift.type* [[ARGUMENT2_METADATA:%[0-9]+]]) #{{[0-9]+}} {{(section)?.*}}{
239-
// CHECK: entry:
240-
// CHECK: [[ERASED_ARGUMENT1:%[0-9]+]] = bitcast %swift.type* [[ARGUMENT1_METADATA]] to i8*
241-
// CHECK: [[ERASED_ARGUMENT2:%[0-9]+]] = bitcast %swift.type* [[ARGUMENT2_METADATA]] to i8*
242-
// CHECK: {{%[0-9]+}} = call swiftcc %swift.metadata_response @__swift_instantiateCanonicalPrespecializedGenericMetadata(
243-
// CHECK: [[INT]] [[METADATA_REQUEST]],
244-
// CHECK: i8* [[ERASED_ARGUMENT1]],
245-
// CHECK: i8* [[ERASED_ARGUMENT2]],
246-
// CHECK: i8* undef,
247-
// CHECK: %swift.type_descriptor* bitcast (
248-
// : <{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8, i32, i32, %swift.method_descriptor }>*
249-
// CHECK: $s4main5Value[[UNIQUE_ID_1]]LLCMn
250-
// CHECK: to %swift.type_descriptor*
251-
// CHECK: )
252-
// CHECK: ) #{{[0-9]+}}
120+
// CHECK: define internal swiftcc %swift.metadata_response @"$s4main5Value[[UNIQUE_ID_1]]LLCMa"([[INT]] [[METADATA_REQUEST:%[0-9]+]], ptr [[ARGUMENT1_METADATA:%[0-9]+]], ptr [[ARGUMENT2_METADATA:%[0-9]+]]) #{{[0-9]+}} {{(section)?.*}}{
121+
// CHECK: call swiftcc %swift.metadata_response @__swift_instantiateCanonicalPrespecializedGenericMetadata(
122+
// CHECK-SAME: [[INT]] [[METADATA_REQUEST]],
123+
// CHECK-SAME: ptr [[ARGUMENT1_METADATA]],
124+
// CHECK-SAME: ptr [[ARGUMENT2_METADATA]],
125+
// CHECK-SAME: ptr undef,
126+
// CHECK-SAME: $s4main5Value[[UNIQUE_ID_1]]LLCMn
127+
// CHECK-SAME: )
253128
// CHECK: ret %swift.metadata_response {{%[0-9]+}}
254129
// CHECK: }
255130

@@ -259,50 +134,15 @@ doit()
259134
// CHECK: call swiftcc %swift.metadata_response @"$s4main9Argument1[[UNIQUE_ID_1]]LLCySiGMb"([[INT]] 0)
260135
// CHECK: call swiftcc %swift.metadata_response @"$s4main9Argument2[[UNIQUE_ID_1]]LLCySSGMb"([[INT]] 0)
261136
// CHECK-unknown: ret
262-
// CHECK-apple: [[INITIALIZED_CLASS:%[0-9]+]] = call %objc_class* @objc_opt_self(
263-
// : %objc_class* bitcast (
264-
// : %swift.type* getelementptr inbounds (
265-
// : %swift.full_heapmetadata,
266-
// : %swift.full_heapmetadata* bitcast (
267-
// : <{
268-
// : void (
269-
// : %T4main5Value[[UNIQUE_ID_1]]LLC*
270-
// : )*,
271-
// : i8**,
272-
// : [[INT]],
273-
// : %objc_class*,
274-
// : %swift.opaque*,
275-
// : %swift.opaque*,
276-
// : [[INT]],
277-
// : i32,
278-
// : i32,
279-
// : i32,
280-
// : i16,
281-
// : i16,
282-
// : i32,
283-
// : i32,
284-
// : %swift.type_descriptor*,
285-
// : i8*,
286-
// : %swift.type*,
287-
// : %swift.type*,
288-
// : [[INT]],
289-
// : [[INT]],
290-
// : %T4main5Value[[UNIQUE_ID_1]]LLC* (
291-
// : %swift.opaque*,
292-
// : %swift.opaque*,
293-
// : %swift.type*
294-
// : )*
295-
// : }>*
296-
// CHECK-SAME: @"$s4main5Value[[UNIQUE_ID_1]]LLCyAA9Argument1ACLLCySiGAA9Argument2ACLLCySSGGMf"
297-
// : to %swift.full_heapmetadata*
298-
// : ),
299-
// : i32 0,
300-
// : i32 2
301-
// : ) to %objc_class*
137+
// CHECK-apple: [[INITIALIZED_CLASS:%[0-9]+]] = call ptr @objc_opt_self(
138+
// : ptr getelementptr inbounds (
139+
// : %swift.full_heapmetadata,
140+
// CHECK-SAME: $s4main5Value[[UNIQUE_ID_1]]LLCyAA9Argument1ACLLCySiGAA9Argument2ACLLCySSGGMf
141+
// : i32 0,
142+
// : i32 2
302143
// : )
303144
// : )
304-
// CHECK-apple: [[INITIALIZED_METADATA:%[0-9]+]] = bitcast %objc_class* [[INITIALIZED_CLASS]] to %swift.type*
305-
// CHECK-apple: [[PARTIAL_METADATA_RESPONSE:%[0-9]+]] = insertvalue %swift.metadata_response undef, %swift.type* [[INITIALIZED_METADATA]], 0
145+
// CHECK-apple: [[PARTIAL_METADATA_RESPONSE:%[0-9]+]] = insertvalue %swift.metadata_response undef, ptr [[INITIALIZED_CLASS]], 0
306146
// CHECK-apple: [[METADATA_RESPONSE:%[0-9]+]] = insertvalue %swift.metadata_response [[PARTIAL_METADATA_RESPONSE]], [[INT]] 0, 1
307147
// CHECK-apple: ret %swift.metadata_response [[METADATA_RESPONSE]]
308148
// CHECK: }

0 commit comments

Comments
 (0)