@@ -12,21 +12,20 @@ struct Point {
12
12
var x: Int64
13
13
var y: Int64
14
14
}
15
- class HasCenter {
16
15
16
+ class HasCenter {
17
17
let centerPoint: Point = Point(x: 0, y: 0)
18
-
19
18
public func getCenter() -> Int64
20
19
}
21
20
22
- sil hidden @$s19let_properties_opts5PointV1x1yACSi_SitcfC : $@convention(method) (Int64, Int64, @thin Point.Type) -> Point {
21
+ sil hidden [ossa] @$s19let_properties_opts5PointV1x1yACSi_SitcfC : $@convention(method) (Int64, Int64, @thin Point.Type) -> Point {
23
22
bb0(%0 : $Int64, %1 : $Int64, %2 : $@thin Point.Type):
24
23
%3 = struct $Point (%0 : $Int64, %1 : $Int64)
25
24
return %3 : $Point
26
25
}
27
26
28
27
// variable initialization expression of HasCenter.centerPoint
29
- sil hidden [transparent] @$s19let_properties_opts9HasCenterC11centerPointAA0E0Vvpfi : $@convention(thin) () -> Point {
28
+ sil hidden [transparent] [ossa] @$s19let_properties_opts9HasCenterC11centerPointAA0E0Vvpfi : $@convention(thin) () -> Point {
30
29
bb0:
31
30
%0 = integer_literal $Builtin.Int64, 0
32
31
%1 = struct $Int64 (%0 : $Builtin.Int64)
35
34
}
36
35
37
36
// HasCenter.centerPoint.getter
38
- // CHECK-LABEL: sil hidden [transparent] @$s19let_properties_opts9HasCenterC11centerPointAA0E0Vvg : $@convention(method) (@guaranteed HasCenter) -> Point {
39
- // CHECK: bb0(%0 : $HasCenter):
37
+ // CHECK-LABEL: sil hidden [transparent] [ossa] @$s19let_properties_opts9HasCenterC11centerPointAA0E0Vvg : $@convention(method) (@guaranteed HasCenter) -> Point {
38
+ // CHECK: bb0(%0 : @guaranteed $HasCenter):
40
39
// CHECK: [[LIT:%.*]] = integer_literal $Builtin.Int64, 0
41
40
// CHECK: [[INT:%.*]] = struct $Int64 ([[LIT]] : $Builtin.Int64)
42
41
// CHECK: [[PNT:%.*]] = struct $Point ([[INT]] : $Int64, [[INT]] : $Int64)
43
42
// CHECK: return [[PNT]] : $Point
44
43
// CHECK-LABEL: } // end sil function '$s19let_properties_opts9HasCenterC11centerPointAA0E0Vvg'
45
- sil hidden [transparent] @$s19let_properties_opts9HasCenterC11centerPointAA0E0Vvg : $@convention(method) (@guaranteed HasCenter) -> Point {
46
- bb0(%0 : $HasCenter):
44
+ sil hidden [transparent] [ossa] @$s19let_properties_opts9HasCenterC11centerPointAA0E0Vvg : $@convention(method) (@guaranteed HasCenter) -> Point {
45
+ bb0(%0 : @guaranteed $HasCenter):
47
46
%1 = ref_element_addr %0 : $HasCenter, #HasCenter.centerPoint
48
- %2 = load %1 : $*Point
47
+ %2 = load [trivial] %1 : $*Point
49
48
return %2 : $Point
50
49
}
51
50
52
51
// HasCenter.getCenter()
53
- // CHECK-LABEL: sil hidden @$s19let_properties_opts9HasCenterC9getCenterSiyF : $@convention(method) (@guaranteed HasCenter) -> Int64 {
52
+ // CHECK-LABEL: sil hidden [ossa] @$s19let_properties_opts9HasCenterC9getCenterSiyF : $@convention(method) (@guaranteed HasCenter) -> Int64 {
54
53
// CHECK: [[LIT:%.*]] = integer_literal $Builtin.Int64, 0
55
54
// CHECK: [[INT:%.*]] = struct $Int64 ([[LIT]] : $Builtin.Int64)
56
55
// CHECK: [[PNT:%.*]] = struct $Point ([[INT]] : $Int64, [[INT]] : $Int64)
57
56
// CHECK: [[X:%.*]] = struct_extract [[PNT]] : $Point, #Point.x
58
57
// CHECK: return [[X]] : $Int64
59
58
// CHECK-LABEL: } // end sil function '$s19let_properties_opts9HasCenterC9getCenterSiyF'
60
- sil hidden @$s19let_properties_opts9HasCenterC9getCenterSiyF : $@convention(method) (@guaranteed HasCenter) -> Int64 {
61
- bb0(%0 : $HasCenter):
59
+ sil hidden [ossa] @$s19let_properties_opts9HasCenterC9getCenterSiyF : $@convention(method) (@guaranteed HasCenter) -> Int64 {
60
+ bb0(%0 : @guaranteed $HasCenter):
62
61
%1 = ref_element_addr %0 : $HasCenter, #HasCenter.centerPoint
63
62
%2 = struct_element_addr %1 : $*Point, #Point.x
64
- %3 = load %2 : $*Int64
63
+ %3 = load [trivial] %2 : $*Int64
65
64
return %3 : $Int64
66
65
}
67
66
68
67
// HasCenter.init()
69
- sil hidden @$s19let_properties_opts9HasCenterCACycfc : $@convention(method) (@owned HasCenter) -> @owned HasCenter {
70
- bb0(%0 : $HasCenter):
68
+ sil hidden [ossa] @$s19let_properties_opts9HasCenterCACycfc : $@convention(method) (@owned HasCenter) -> @owned HasCenter {
69
+ bb0(%0 : @owned $HasCenter):
71
70
%1 = integer_literal $Builtin.Int64, 0
72
- %2 = struct $Int64 (%1 : $Builtin.Int64)
73
- %3 = struct $Point (%2 : $Int64, %2 : $Int64)
74
- %4 = ref_element_addr %0 : $HasCenter, #HasCenter.centerPoint
75
- store %3 to %4 : $*Point
76
- return %0 : $HasCenter
71
+ %3 = struct $Int64 (%1 : $Builtin.Int64)
72
+ %4 = struct $Point (%3 : $Int64, %3 : $Int64)
73
+ %5 = begin_borrow %0 : $HasCenter
74
+ %6 = ref_element_addr %5 : $HasCenter, #HasCenter.centerPoint
75
+ store %4 to [trivial] %6 : $*Point
76
+ end_borrow %5 : $HasCenter
77
+ %9 = copy_value %0 : $HasCenter
78
+ destroy_value %0 : $HasCenter
79
+ return %9 : $HasCenter
77
80
}
0 commit comments