Skip to content

Commit d359abb

Browse files
committed
Adapt tests to changes to keep functions for debugger on Onone
Now that we keep many more functions on unoptimized builds, many tests need to be changed to either: - Account for function that wasn't being emitted before to being emitted now. - Account for functions that previously were being emitted lazily to being emitted eagerly now.
1 parent 184bb5f commit d359abb

File tree

22 files changed

+186
-180
lines changed

22 files changed

+186
-180
lines changed

lib/SIL/IR/SILFunction.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -876,6 +876,9 @@ SILFunction::isPossiblyUsedExternally() const {
876876
}
877877

878878
bool SILFunction::shouldBePreservedForDebugger() const {
879+
/* if (isGlobalInit()) */
880+
/* return true; */
881+
/* return false; */
879882
// Only preserve for the debugger at Onone.
880883
if (getEffectiveOptimizationMode() != OptimizationMode::NoOptimization)
881884
return false;

test/Concurrency/Backdeploy/weak_linking.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@
2121
// BACKDEPLOY_CONCURRENCY: declare extern_weak swiftcc ptr @swift_task_alloc
2222
// BACKDEPLOY_CONCURRENCY: declare extern_weak swiftcc %swift.metadata_response @"$sScPMa"
2323

24+
// BACKDEPLOY_CONCURRENCY: declare extern_weak swiftcc i8 @"$sScP8rawValues5UInt8Vvg"
25+
2426
// BACKDEPLOY_CONCURRENCY: declare extern_weak void @"_swift_FORCE_LOAD_$_swiftCompatibilityConcurrency"()
2527
// BACKDEPLOY56: declare extern_weak void @"_swift_FORCE_LOAD_$_swiftCompatibility56"()
2628

27-
// BACKDEPLOY_CONCURRENCY: declare extern_weak swiftcc i8 @"$sScP8rawValues5UInt8Vvg"
2829

2930
// OPTIMIZED: @swift_async_extendedFramePointerFlags = extern_weak global ptr
3031
// OPTIMIZED: @_swift_async_extendedFramePointerFlagsUser = linkonce_odr hidden global ptr @swift_async_extendedFramePointerFlags

test/IRGen/alwaysEmitIntoClient.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// RUN: %target-swift-frontend -emit-ir %s -O | %FileCheck %s --check-prefix=OPTIMIZED
22
// RUN: %target-swift-frontend -emit-ir %s | %FileCheck %s
3-
// RUN: %target-swift-frontend -emit-ir %s | %FileCheck %s --check-prefix=NEGATIVE
3+
// RUN: %target-swift-frontend -emit-ir %s | %FileCheck %s --check-prefix=UNOPTIMIZED
44
// RUN: %target-swift-frontend -emit-ir -primary-file %s | %FileCheck %s --check-prefix=PRIMARY
55

66
// Make sure that @_alwaysEmitIntoClient functions are lazily
@@ -12,11 +12,11 @@
1212
// OPTIMIZED-NOT: define weak_odr hidden swiftcc void @"$s20alwaysEmitIntoClient18referencedFunctionyyF"() {{.*}} {
1313
// OPTIMIZED-NOT: define weak_odr hidden swiftcc void @"$s20alwaysEmitIntoClient20unreferencedFunctionyyF"() {{.*}} {
1414

15-
// The unreferenced function should be eliminated in an unoptimized WMO
16-
// build too, since it was never referenced from inside the module.
15+
// Both functions are kept in unoptimized builds, even the one that was never
16+
// referenced, as it may be called from the debugger.
1717

1818
// CHECK-LABEL: define linkonce_odr hidden swiftcc void @"$s20alwaysEmitIntoClient18referencedFunctionyyF"() {{.*}} {
19-
// NEGATIVE-NOT: define linkonce_odr hidden swiftcc void @"$s20alwaysEmitIntoClient20unreferencedFunctionyyF"() {{.*}} {
19+
// UNOPTIMIZED: define linkonce_odr hidden swiftcc void @"$s20alwaysEmitIntoClient20unreferencedFunctionyyF"() {{.*}} {
2020

2121
// In non-WMO mode, both functions must be emitted since they could be
2222
// referenced from other translation units.

test/IRGen/asmname.swift

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,33 +11,36 @@ _ = atan2test(0.0, 0.0)
1111

1212

1313
// Ordinary Swift definitions
14-
// The unused internal and private functions are expected to be eliminated.
14+
// The unused internal and private functions are expected to be kept as they
15+
// may be used from the debugger in unoptimized builds.
1516

1617
public func PlainPublic() { }
1718
internal func PlainInternal() { }
1819
private func PlainPrivate() { }
1920
// CHECK: define{{( dllexport)?}}{{( protected)?}} swiftcc void @"$s7asmname11PlainPublic
20-
// CHECK-NOT: PlainInternal
21-
// CHECK-NOT: PlainPrivate
21+
// CHECK: define{{( dllexport)?}}{{( protected)?}} hidden swiftcc void @"$s7asmname13PlainInternalyyF
22+
// CHECK: define{{( dllexport)?}}{{( protected)?}} internal swiftcc void @"$s7asmname12PlainPrivate
2223

2324

2425
// Swift _silgen_name definitions
25-
// The private function is expected to be eliminated
26-
// but the internal function must survive for C use.
26+
// The private function is expected
27+
// to be eliminated as it may be used from the
28+
// debugger in unoptimized builds,
29+
// and the internal function must survive for C use.
2730
// Only the C-named definition is emitted.
2831

2932
@_silgen_name("silgen_name_public") public func SilgenNamePublic() { }
3033
@_silgen_name("silgen_name_internal") internal func SilgenNameInternal() { }
3134
@_silgen_name("silgen_name_private") private func SilgenNamePrivate() { }
3235
// CHECK: define{{( dllexport)?}}{{( protected)?}} swiftcc void @silgen_name_public
3336
// CHECK: define hidden swiftcc void @silgen_name_internal
34-
// CHECK-NOT: silgen_name_private
37+
// CHECK: define internal swiftcc void @silgen_name_private
3538
// CHECK-NOT: SilgenName
3639

3740

3841
// Swift cdecl definitions
39-
// The private functions are expected to be eliminated
40-
// but the internal functions must survive for C use.
42+
// The private functions are expected to be kept as it may be used from the debugger,
43+
// and the internal functions must survive for C use.
4144
// Both a C-named definition and a Swift-named definition are emitted.
4245

4346
@_cdecl("cdecl_public") public func CDeclPublic() { }
@@ -47,4 +50,4 @@ private func PlainPrivate() { }
4750
// CHECK: define{{( dllexport)?}}{{( protected)?}} swiftcc void @"$s7asmname11CDeclPublic
4851
// CHECK: define hidden void @cdecl_internal
4952
// CHECK: define hidden swiftcc void @"$s7asmname13CDeclInternal
50-
// CHECK-NOT: cdecl_private
53+
// CHECK: define internal void @cdecl_private()

test/IRGen/async/run-call-class-witnessmethod-void-to-void.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ protocol P {
2828
// CHECK: exiting call_f
2929

3030
// CHECK-LL: @"$s4main1PPAAE1fyyYaFTu" = hidden global %swift.async_func_pointer
31-
// CHECK-LL: @"$s4main6call_fyyxYaAA1PRzlFTu" = hidden global %swift.async_func_pointer
3231
// CHECK-LL: @"$s4main1XCAA1PA2aDP1fyyYaFTWTu" = internal global %swift.async_func_pointer
32+
// CHECK-LL: @"$s4main6call_fyyxYaAA1PRzlFTu" = hidden global %swift.async_func_pointer
3333

3434
extension P {
3535
// CHECK-LL: define hidden swift{{(tail)?}}cc void @"$s4main1PPAAE1fyyYaF"(

test/IRGen/objc_implementation.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
// RUN: %FileCheck --input-file %t.ir --check-prefix NEGATIVE %s
77
// REQUIRES: objc_interop
88

9+
// CHECK: [[selector_data_implProperty:@[^, ]+]] = private global [13 x i8] c"implProperty\00", section "__TEXT,__objc_methname,cstring_literals", align 1
10+
// CHECK: [[selector_data_setImplProperty_:@[^, ]+]] = private global [17 x i8] c"setImplProperty:\00", section "__TEXT,__objc_methname,cstring_literals", align 1
11+
912
// CHECK: [[selector_data_mainMethod_:@[^, ]+]] = private global [12 x i8] c"mainMethod:\00", section "__TEXT,__objc_methname,cstring_literals", align 1
1013

1114
//
@@ -19,8 +22,6 @@
1922
// TODO: Why the extra i32 field above?
2023

2124
// Class
22-
// CHECK: [[selector_data_implProperty:@[^, ]+]] = private global [13 x i8] c"implProperty\00", section "__TEXT,__objc_methname,cstring_literals", align 1
23-
// CHECK: [[selector_data_setImplProperty_:@[^, ]+]] = private global [17 x i8] c"setImplProperty:\00", section "__TEXT,__objc_methname,cstring_literals", align 1
2425
// CHECK: [[selector_data__cxx_destruct:@[^, ]+]] = private global [14 x i8] c".cxx_destruct\00", section "__TEXT,__objc_methname,cstring_literals", align 1
2526
// CHECK: [[_INSTANCE_METHODS_ImplClass:@[^, ]+]] = internal constant { i32, i32, [7 x { ptr, ptr, ptr }] } { i32 24, i32 7, [7 x { ptr, ptr, ptr }] [{ ptr, ptr, ptr } { ptr @"\01L_selector_data(init)", ptr @".str.7.@16@0:8", ptr @"$sSo9ImplClassC19objc_implementationEABycfcTo{{(\.ptrauth)?}}" }, { ptr, ptr, ptr } { ptr [[selector_data_implProperty]], ptr @".str.7.i16@0:8", ptr @"$sSo9ImplClassC19objc_implementationE12implPropertys5Int32VvgTo{{(\.ptrauth)?}}" }, { ptr, ptr, ptr } { ptr [[selector_data_setImplProperty_]], ptr @".str.10.v20@0:8i16", ptr @"$sSo9ImplClassC19objc_implementationE12implPropertys5Int32VvsTo{{(\.ptrauth)?}}" }, { ptr, ptr, ptr } { ptr [[selector_data_mainMethod_]], ptr @".str.10.v20@0:8i16", ptr @"$sSo9ImplClassC19objc_implementationE10mainMethodyys5Int32VFTo{{(\.ptrauth)?}}" }, { ptr, ptr, ptr } { ptr @"\01L_selector_data(copyWithZone:)", ptr @".str.11.@24@0:8^v16", ptr @"$sSo9ImplClassC19objc_implementationE4copy4withypSg10ObjectiveC6NSZoneVSg_tFTo{{(\.ptrauth)?}}" }, { ptr, ptr, ptr } { ptr @"\01L_selector_data(dealloc)", ptr @".str.7.v16@0:8", ptr @"$sSo9ImplClassC19objc_implementationEfDTo{{(\.ptrauth)?}}" }, { ptr, ptr, ptr } { ptr [[selector_data__cxx_destruct]], ptr @".str.7.v16@0:8", ptr @"$sSo9ImplClassCfETo{{(\.ptrauth)?}}" }] }, section "__DATA, __objc_data", align 8
2627
// CHECK: [[_IVARS_ImplClass:@[^, ]+]] = internal constant { i32, i32, [2 x { ptr, ptr, ptr, i32, i32 }] } { i32 32, i32 2, [2 x { ptr, ptr, ptr, i32, i32 }] [{ ptr, ptr, ptr, i32, i32 } { ptr @"$sSo9ImplClassC19objc_implementationE12implPropertys5Int32VvpWvd", ptr @.str.12.implProperty, ptr @.str.0., i32 2, i32 4 }, { ptr, ptr, ptr, i32, i32 } { ptr @"$sSo9ImplClassC19objc_implementationE13implProperty2So8NSObjectCSgvpWvd", ptr @.str.13.implProperty2, ptr @.str.0., i32 3, i32 8 }] }, section "__DATA, __objc_const", align 8

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

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -117,18 +117,6 @@ func doit() {
117117
}
118118
doit()
119119

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: )
128-
// CHECK: ret %swift.metadata_response {{%[0-9]+}}
129-
// CHECK: }
130-
131-
132120
// CHECK: define linkonce_odr hidden swiftcc %swift.metadata_response @"$s4main5Value[[UNIQUE_ID_4]]LLCyAA9Argument1ACLLCySiGAA9Argument2ACLLCySSGGMb"([[INT]] {{%[0-9]+}}) {{#[0-9]}} {{(section)?.*}}{
133121
// CHECK: entry:
134122
// CHECK: call swiftcc %swift.metadata_response @"$s4main9Argument1[[UNIQUE_ID_1]]LLCySiGMb"([[INT]] 0)
@@ -147,3 +135,13 @@ doit()
147135
// CHECK-apple: ret %swift.metadata_response [[METADATA_RESPONSE]]
148136
// CHECK: }
149137

138+
// 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)?.*}}{
139+
// CHECK: call swiftcc %swift.metadata_response @__swift_instantiateCanonicalPrespecializedGenericMetadata(
140+
// CHECK-SAME: [[INT]] [[METADATA_REQUEST]],
141+
// CHECK-SAME: ptr [[ARGUMENT1_METADATA]],
142+
// CHECK-SAME: ptr [[ARGUMENT2_METADATA]],
143+
// CHECK-SAME: ptr undef,
144+
// CHECK-SAME: $s4main5Value[[UNIQUE_ID_1]]LLCMn
145+
// CHECK-SAME: )
146+
// CHECK: ret %swift.metadata_response {{%[0-9]+}}
147+
// CHECK: }

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

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -109,18 +109,6 @@ func doit() {
109109
}
110110
doit()
111111

112-
// 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)?.*}}{
113-
// CHECK: {{%[0-9]+}} = call swiftcc %swift.metadata_response @__swift_instantiateCanonicalPrespecializedGenericMetadata(
114-
// CHECK-SAME: [[INT]] [[METADATA_REQUEST]],
115-
// CHECK-SAME: ptr [[ARGUMENT1_METADATA]],
116-
// CHECK-SAME: ptr [[ARGUMENT2_METADATA]],
117-
// CHECK-SAME: ptr undef,
118-
// CHECK-SAME: $s4main5Value[[UNIQUE_ID_1]]LLCMn
119-
// CHECK: )
120-
// CHECK: ret %swift.metadata_response {{%[0-9]+}}
121-
// CHECK: }
122-
123-
124112
// CHECK: define linkonce_odr hidden swiftcc %swift.metadata_response @"$s4main5Value[[UNIQUE_ID_4]]LLCyAA9Argument1ACLLCySiGAFySSGGMb"([[INT]] {{%[0-9]+}}) {{#[0-9]}} {{(section)?.*}}{
125113
// CHECK: entry:
126114
// CHECK: call swiftcc %swift.metadata_response @"$s4main9Argument1[[UNIQUE_ID_1]]LLCySiGMb"([[INT]] 0)
@@ -141,4 +129,13 @@ doit()
141129
// CHECK-apple: ret %swift.metadata_response [[METADATA_RESPONSE]]
142130
// CHECK: }
143131

144-
132+
// 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)?.*}}{
133+
// CHECK: {{%[0-9]+}} = call swiftcc %swift.metadata_response @__swift_instantiateCanonicalPrespecializedGenericMetadata(
134+
// CHECK-SAME: [[INT]] [[METADATA_REQUEST]],
135+
// CHECK-SAME: ptr [[ARGUMENT1_METADATA]],
136+
// CHECK-SAME: ptr [[ARGUMENT2_METADATA]],
137+
// CHECK-SAME: ptr undef,
138+
// CHECK-SAME: $s4main5Value[[UNIQUE_ID_1]]LLCMn
139+
// CHECK: )
140+
// CHECK: ret %swift.metadata_response {{%[0-9]+}}
141+
// CHECK: }

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

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -108,20 +108,6 @@ func doit() {
108108
}
109109
doit()
110110

111-
// 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)?.*}}{
112-
// CHECK: entry:
113-
// CHECK: {{%[0-9]+}} = call swiftcc %swift.metadata_response @__swift_instantiateCanonicalPrespecializedGenericMetadata(
114-
// CHECK-SAME: [[INT]] [[METADATA_REQUEST]],
115-
// CHECK-SAME: ptr [[ARGUMENT1_METADATA]],
116-
// CHECK-SAME: ptr [[ARGUMENT2_METADATA]],
117-
// CHECK-SAME: ptr undef,
118-
// CHECK-SAME: $s4main5Value[[UNIQUE_ID_1]]LLCMn
119-
// CHECK-SAME: $s4main5Value[[UNIQUE_ID_1]]LLCMz
120-
// CHECK: )
121-
// CHECK: ret %swift.metadata_response {{%[0-9]+}}
122-
// CHECK: }
123-
124-
125111
// CHECK: define linkonce_odr hidden swiftcc %swift.metadata_response @"$s4main5Value[[UNIQUE_ID_4]]LLCyAA9Argument1ACLLCySiGAGGMb"([[INT]] {{%[0-9]+}}) {{#[0-9]}} {{(section)?.*}}{
126112
// CHECK: entry:
127113
// CHECK: call swiftcc %swift.metadata_response @"$s4main9Argument1[[UNIQUE_ID_1]]LLCySiGMb"([[INT]] 0)
@@ -141,3 +127,16 @@ doit()
141127
// CHECK-apple: [[METADATA_RESPONSE:%[0-9]+]] = insertvalue %swift.metadata_response [[PARTIAL_METADATA_RESPONSE]], [[INT]] 0, 1
142128
// CHECK-apple: ret %swift.metadata_response [[METADATA_RESPONSE]]
143129
// CHECK: }
130+
131+
// 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)?.*}}{
132+
// CHECK: entry:
133+
// CHECK: {{%[0-9]+}} = call swiftcc %swift.metadata_response @__swift_instantiateCanonicalPrespecializedGenericMetadata(
134+
// CHECK-SAME: [[INT]] [[METADATA_REQUEST]],
135+
// CHECK-SAME: ptr [[ARGUMENT1_METADATA]],
136+
// CHECK-SAME: ptr [[ARGUMENT2_METADATA]],
137+
// CHECK-SAME: ptr undef,
138+
// CHECK-SAME: $s4main5Value[[UNIQUE_ID_1]]LLCMn
139+
// CHECK-SAME: $s4main5Value[[UNIQUE_ID_1]]LLCMz
140+
// CHECK: )
141+
// CHECK: ret %swift.metadata_response {{%[0-9]+}}
142+
// CHECK: }

test/IRGen/prespecialized-metadata/class-fileprivate-inmodule-1arg-2ancs-1distinct_use-1st_anc_gen-1arg-1st_arg_con_int-2nd_anc_gen-1st-arg_con_double.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,18 @@ func doit() {
122122
}
123123
doit()
124124

125+
// CHECK: ; Function Attrs: noinline nounwind memory(none)
126+
// CHECK: define linkonce_odr hidden swiftcc %swift.metadata_response @"$s4main5Value[[UNIQUE_ID_1]]CySSGMb"([[INT]] {{%[0-9]+}}) #{{[0-9]+}} {{(section)?.*}}{
127+
// CHECK: call swiftcc %swift.metadata_response @"$s4main9Ancestor1[[UNIQUE_ID_1]]CySiGMb"([[INT]] 0)
128+
// CHECK-NOT: call swiftcc %swift.metadata_response @"$s4main9Ancestor2[[UNIQUE_ID_1]]CySiGMb"([[INT]] 0)
129+
// CHECK-unknown: ret
130+
// CHECK-apple: [[INITIALIZED_CLASS:%[0-9]+]] = call ptr @objc_opt_self(
131+
// CHECK-SAME: @"$s4main5Value[[UNIQUE_ID_1]]CySSGMf"
132+
// CHECK-apple: [[PARTIAL_METADATA_RESPONSE:%[0-9]+]] = insertvalue %swift.metadata_response undef, ptr [[INITIALIZED_CLASS]], 0
133+
// CHECK-apple: [[METADATA_RESPONSE:%[0-9]+]] = insertvalue %swift.metadata_response [[PARTIAL_METADATA_RESPONSE]], [[INT]] 0, 1
134+
// CHECK-apple: ret %swift.metadata_response [[METADATA_RESPONSE]]
135+
// CHECK: }
136+
125137
// CHECK: define internal swiftcc %swift.metadata_response @"$s4main9Ancestor2[[UNIQUE_ID_1]]CMa"([[INT]] [[METADATA_REQUEST:%[0-9]+]], ptr %1) #{{[0-9]+}} {{(section)?.*}}{
126138
// CHECK: entry:
127139
// CHECK: {{%[0-9]+}} = call swiftcc %swift.metadata_response @__swift_instantiateCanonicalPrespecializedGenericMetadata(
@@ -162,18 +174,6 @@ doit()
162174
// CHECK: ret %swift.metadata_response {{%[0-9]+}}
163175
// CHECK: }
164176

165-
// CHECK: ; Function Attrs: noinline nounwind memory(none)
166-
// CHECK: define linkonce_odr hidden swiftcc %swift.metadata_response @"$s4main5Value[[UNIQUE_ID_1]]CySSGMb"([[INT]] {{%[0-9]+}}) #{{[0-9]+}} {{(section)?.*}}{
167-
// CHECK: call swiftcc %swift.metadata_response @"$s4main9Ancestor1[[UNIQUE_ID_1]]CySiGMb"([[INT]] 0)
168-
// CHECK-NOT: call swiftcc %swift.metadata_response @"$s4main9Ancestor2[[UNIQUE_ID_1]]CySiGMb"([[INT]] 0)
169-
// CHECK-unknown: ret
170-
// CHECK-apple: [[INITIALIZED_CLASS:%[0-9]+]] = call ptr @objc_opt_self(
171-
// CHECK-SAME: @"$s4main5Value[[UNIQUE_ID_1]]CySSGMf"
172-
// CHECK-apple: [[PARTIAL_METADATA_RESPONSE:%[0-9]+]] = insertvalue %swift.metadata_response undef, ptr [[INITIALIZED_CLASS]], 0
173-
// CHECK-apple: [[METADATA_RESPONSE:%[0-9]+]] = insertvalue %swift.metadata_response [[PARTIAL_METADATA_RESPONSE]], [[INT]] 0, 1
174-
// CHECK-apple: ret %swift.metadata_response [[METADATA_RESPONSE]]
175-
// CHECK: }
176-
177177
// CHECK: define linkonce_odr hidden swiftcc %swift.metadata_response @"$s4main9Ancestor1[[UNIQUE_ID_1]]CySiGMb"([[INT]] {{%[0-9]+}})
178178

179179
// CHECK: define linkonce_odr hidden swiftcc %swift.metadata_response @"$s4main9Ancestor2[[UNIQUE_ID_1]]CySdGMb"([[INT]] {{%[0-9]+}})

test/IRGen/prespecialized-metadata/class-fileprivate-inmodule-1arg-2ancs-1distinct_use-1st_anc_gen-1arg-1st_arg_con_int-2nd_anc_gen-1st-arg_subclass_arg.swift

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,19 @@ func doit() {
120120
}
121121
doit()
122122

123+
// CHECK: ; Function Attrs: noinline nounwind memory(none)
124+
// CHECK: define linkonce_odr hidden swiftcc %swift.metadata_response @"$s4main5Value[[UNIQUE_ID_1]]CySSGMb"([[INT]] {{%[0-9]+}}) #{{[0-9]+}} {{(section)?.*}}{
125+
// CHECK: entry:
126+
// CHECK: call swiftcc %swift.metadata_response @"$s4main9Ancestor1[[UNIQUE_ID_1]]CySiGMb"([[INT]] 0)
127+
// CHECK-NOT: call swiftcc %swift.metadata_response @"$s4main9Ancestor2[[UNIQUE_ID_1]]CySiGMb"([[INT]] 0)
128+
// CHECK-unknown: ret
129+
// CHECK-apple: [[INITIALIZED_CLASS:%[0-9]+]] = call ptr @objc_opt_self(
130+
// CHECK-SAME: @"$s4main5Value[[UNIQUE_ID_1]]CySSGMf"
131+
// CHECK-apple: [[PARTIAL_METADATA_RESPONSE:%[0-9]+]] = insertvalue %swift.metadata_response undef, ptr [[INITIALIZED_CLASS]], 0
132+
// CHECK-apple: [[METADATA_RESPONSE:%[0-9]+]] = insertvalue %swift.metadata_response [[PARTIAL_METADATA_RESPONSE]], [[INT]] 0, 1
133+
// CHECK-apple: ret %swift.metadata_response [[METADATA_RESPONSE]]
134+
// CHECK: }
135+
123136
// CHECK: define internal swiftcc %swift.metadata_response @"$s4main9Ancestor2[[UNIQUE_ID_1]]CMa"([[INT]] [[METADATA_REQUEST:%[0-9]+]], ptr %1) #{{[0-9]+}} {{(section)?.*}}{
124137
// CHECK: entry:
125138
// CHECK: {{%[0-9]+}} = call swiftcc %swift.metadata_response @__swift_instantiateCanonicalPrespecializedGenericMetadata(
@@ -156,19 +169,6 @@ doit()
156169
// CHECK: ret %swift.metadata_response {{%[0-9]+}}
157170
// CHECK: }
158171

159-
// CHECK: ; Function Attrs: noinline nounwind memory(none)
160-
// CHECK: define linkonce_odr hidden swiftcc %swift.metadata_response @"$s4main5Value[[UNIQUE_ID_1]]CySSGMb"([[INT]] {{%[0-9]+}}) #{{[0-9]+}} {{(section)?.*}}{
161-
// CHECK: entry:
162-
// CHECK: call swiftcc %swift.metadata_response @"$s4main9Ancestor1[[UNIQUE_ID_1]]CySiGMb"([[INT]] 0)
163-
// CHECK-NOT: call swiftcc %swift.metadata_response @"$s4main9Ancestor2[[UNIQUE_ID_1]]CySiGMb"([[INT]] 0)
164-
// CHECK-unknown: ret
165-
// CHECK-apple: [[INITIALIZED_CLASS:%[0-9]+]] = call ptr @objc_opt_self(
166-
// CHECK-SAME: @"$s4main5Value[[UNIQUE_ID_1]]CySSGMf"
167-
// CHECK-apple: [[PARTIAL_METADATA_RESPONSE:%[0-9]+]] = insertvalue %swift.metadata_response undef, ptr [[INITIALIZED_CLASS]], 0
168-
// CHECK-apple: [[METADATA_RESPONSE:%[0-9]+]] = insertvalue %swift.metadata_response [[PARTIAL_METADATA_RESPONSE]], [[INT]] 0, 1
169-
// CHECK-apple: ret %swift.metadata_response [[METADATA_RESPONSE]]
170-
// CHECK: }
171-
172172
// CHECK: define linkonce_odr hidden swiftcc %swift.metadata_response @"$s4main9Ancestor1[[UNIQUE_ID_1]]CySiGMb"([[INT]] {{%[0-9]+}})
173173

174174
// CHECK: define linkonce_odr hidden swiftcc %swift.metadata_response @"$s4main9Ancestor2[[UNIQUE_ID_1]]CySiGMb"([[INT]] {{%[0-9]+}})

0 commit comments

Comments
 (0)