Skip to content

Commit 343b400

Browse files
committed
[outliner] Add end sil function patterns to FileCheck tests so that they can only match one function uniquely.
1 parent fb2346d commit 343b400

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

test/SILOptimizer/outliner.swift

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,23 @@ public class MyGizmo {
1111

1212
init() {
1313
gizmo = Gizmo()
14-
}
15-
// CHECK-LABEL: sil @$s8outliner7MyGizmoC11usePropertyyyF
16-
// CHECK: [[A_FUN:%.*]] = function_ref @$sSo5GizmoC14stringPropertySSSgvgToTeab_
17-
// CHECK: apply [[A_FUN]]({{.*}}) : $@convention(thin) (@in_guaranteed Gizmo) -> @owned Optional<String>
18-
// CHECK-NOT: return
19-
// CHECK: [[P_FUN:%.*]] = function_ref @$sSo5GizmoC14stringPropertySSSgvgToTepb_
20-
// CHECK: apply [[P_FUN]]({{.*}}) : $@convention(thin) (Gizmo) -> @owned Optional<String>
21-
// CHECK: return
14+
}
15+
16+
// CHECK-LABEL: sil @$s8outliner7MyGizmoC11usePropertyyyF :
17+
// CHECK: [[A_FUN:%.*]] = function_ref @$sSo5GizmoC14stringPropertySSSgvgToTeab_
18+
// CHECK: apply [[A_FUN]]({{.*}}) : $@convention(thin) (@in_guaranteed Gizmo) -> @owned Optional<String>
19+
// CHECK-NOT: return
20+
// CHECK: [[P_FUN:%.*]] = function_ref @$sSo5GizmoC14stringPropertySSSgvgToTepb_
21+
// CHECK: apply [[P_FUN]]({{.*}}) : $@convention(thin) (Gizmo) -> @owned Optional<String>
22+
// CHECK: return
23+
// CHECK: } // end sil function '$s8outliner7MyGizmoC11usePropertyyyF'
2224
public func useProperty() {
2325
print(gizmo.stringProperty)
2426
print(optionalGizmo!.stringProperty)
25-
}
27+
}
2628
}
2729

28-
// CHECK-LABEL: sil @$s8outliner13testOutliningyyF
30+
// CHECK-LABEL: sil @$s8outliner13testOutliningyyF :
2931
// CHECK: [[FUN:%.*]] = function_ref @$sSo5GizmoC14stringPropertySSSgvgToTepb_
3032
// CHECK: apply [[FUN]](%{{.*}}) : $@convention(thin) (Gizmo) -> @owned Optional<String>
3133
// CHECK: apply [[FUN]](%{{.*}}) : $@convention(thin) (Gizmo) -> @owned Optional<String>
@@ -39,6 +41,7 @@ public class MyGizmo {
3941
// CHECK: apply [[FUN]]({{.*}}) : $@convention(thin) (@owned Array<String>, Gizmo) -> @owned Optional<AnyObject>
4042
// CHECK: apply [[FUN]]({{.*}}) : $@convention(thin) (@owned Array<String>, Gizmo) -> @owned Optional<AnyObject>
4143
// CHECK: return
44+
// CHECK: } // end sil function '$s8outliner13testOutliningyyF'
4245
public func testOutlining() {
4346
let gizmo = Gizmo()
4447
let foobar = Gizmo()
@@ -59,6 +62,7 @@ public func testOutlining() {
5962
// CHECK: [[METH:%.*]] = objc_method [[OBJ]] : $@opened("{{.*}}") (AnyObject), #Treeish.treeishChildren!1.foreign : <Self where Self : Treeish> (Self) -> () -> [Any]?
6063
// CHECK: [[RES:%.*]] = apply [[METH]]([[OBJ]]) : $@convention(objc_method)
6164
// CHECK: switch_enum [[RES]]
65+
// CHECK: } // end sil function '$s8outliner9dontCrash1ayyp_tF'
6266

6367
// CHECK-LABEL: sil shared [noinline] @$sSo5GizmoC14stringPropertySSSgvgToTeab_ : $@convention(thin) (@in_guaranteed Gizmo) -> @owned Optional<String>
6468
// CHECK: bb0(%0 : $*Gizmo):
@@ -78,6 +82,7 @@ public func testOutlining() {
7882
// CHECK: br bb3(%12 : $Optional<String>)
7983
// CHECK: bb3(%14 : $Optional<String>):
8084
// CHECK: return %14 : $Optional<String>
85+
// CHECK: } // end sil function '$sSo5GizmoC14stringPropertySSSgvgToTeab_'
8186

8287
// CHECK-LABEL: sil shared [noinline] @$sSo5GizmoC14stringPropertySSSgvgToTepb_ : $@convention(thin) (Gizmo) -> @owned Optional<String>
8388
// CHECK: bb0(%0 : $Gizmo):
@@ -96,6 +101,7 @@ public func testOutlining() {
96101
// CHECK: br bb3(%11 : $Optional<String>)
97102
// CHECK:bb3(%13 : $Optional<String>):
98103
// CHECK: return %13 : $Optional<String>
104+
// CHECK: } // end sil function '$sSo5GizmoC14stringPropertySSSgvgToTepb_'
99105

100106
// CHECK-LABEL: sil shared [noinline] @$sSo5GizmoC14stringPropertySSSgvsToTembnn_ : $@convention(thin) (@owned String, Gizmo) -> () {
101107
// CHECK: bb0(%0 : $String, %1 : $Gizmo):
@@ -107,6 +113,7 @@ public func testOutlining() {
107113
// CHECK: %7 = apply %2(%6, %1) : $@convention(objc_method) (Optional<NSString>, Gizmo) -> ()
108114
// CHECK: strong_release %4 : $NSString
109115
// CHECK: return %7 : $()
116+
// CHECK: } // end sil function '$sSo5GizmoC14stringPropertySSSgvsToTembnn_'
110117

111118
// CHECK-LABEL: sil shared [noinline] @$sSo5GizmoC12modifyString_10withNumber0D6FoobarSSSgAF_SiypSgtFToTembnnnb_ : $@convention(thin) (@owned String, Int, Optional<AnyObject>, Gizmo) -> @owned Optional<String> {
112119
// CHECK: bb0(%0 : $String, %1 : $Int, %2 : $Optional<AnyObject>, %3 : $Gizmo):
@@ -133,6 +140,7 @@ public func testOutlining() {
133140
//
134141
// CHECK: bb3(%21 : $Optional<String>):
135142
// CHECK: return %21 : $Optional<String>
143+
// CHECK: } // end sil function '$sSo5GizmoC12modifyString_10withNumber0D6FoobarSSSgAF_SiypSgtFToTembnnnb_'
136144

137145
// CHECK-LABEL: sil shared [noinline] @$sSo5GizmoC11doSomethingyypSgSaySSGSgFToTembnn_ : $@convention(thin) (@owned Array<String>, Gizmo) -> @owned Optional<AnyObject> {
138146
// CHECK: bb0(%0 : $Array<String>, %1 : $Gizmo):
@@ -144,6 +152,7 @@ public func testOutlining() {
144152
// CHECK: %7 = apply %2(%6, %1) : $@convention(objc_method) (Optional<NSArray>, Gizmo) -> @autoreleased Optional<AnyObject>
145153
// CHECK: strong_release %4 : $NSArray
146154
// CHECK: return %7 : $Optional<AnyObject>
155+
// CHECK: } // end sil function '$sSo5GizmoC11doSomethingyypSgSaySSGSgFToTembnn_'
147156

148157
public func dontCrash<T: Proto>(x : Gizmo2<T>) {
149158
let s = x.doSomething()

0 commit comments

Comments
 (0)